home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / os2 / pmsx222.zip / pmsndx.hlp (.txt) < prev    next >
OS/2 Help File  |  1996-06-02  |  543KB  |  4,774 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.                                    PMsndX 2.22
  5.                                        by
  6.                                 William S. Hiles
  7.                              copyright WiSHware Inc.
  8.  
  9. Please see Known Problems with this release for important information before 
  10. using this version of PMsndX. 
  11.  
  12. Firstly, thank you for using the new 2.XX version of PMsndX. If you are a user 
  13. of the 1.XX program called PMsndX, you have probably been surprised that you 
  14. have not found the program called PMsndX.EXE any longer.  There is a good 
  15. reason for that.  PMsndX has been broken into more than one program. 
  16.  
  17. For clarity, the term EdSndX is the name of the sound editor, the term PlSndX 
  18. is the name of the sound player, and the term PMsndX is the term used to 
  19. describe a feature that is common to both EdSndX and PlSndX. 
  20.  
  21. This is the second generation of PMsndX.  In versions prior to 2.0, PMsndX was 
  22. comprised of a single program which performed the same functions of both EdSndX 
  23. and PlSndX but operated on a single sample at a time.  With the introduction of 
  24. version 2.0, PMsndX has been divided into a family of programs which are more 
  25. specialized and intended to meet the needs of a broader audience. 
  26.  
  27. The general idea of the new organization is to provide a more focused goal for 
  28. the individual programs along the same theme.  The general purpose of this 
  29. family of programs is to perform various functions for virtually any sound 
  30. format. In version 1.xx, the program started out to simply convert formats, 
  31. then grew into an editor, then a playback tool, and so forth.  The result was a 
  32. program that was somewhat unfocused and did not provide a consolidated user 
  33. interface. Version 2.0 is a complete rewrite of the previous user interface 
  34. which takes advantage of lessons learned during the development of 1.xx. 
  35.  
  36. All of the PMsndX family of software utilize common resources such as the 
  37. initialization file and registration information.  The Properties boxes for all 
  38. of the programs are consistent and will affect one another except where noted 
  39. as a specific feature of one program.  As a result, the Properties box may 
  40. contain items that are not necessarily related to the particular program being 
  41. used but can be changed from any program in the family. This approach provides 
  42. a common and consistent approach to controlling the options for the programs. 
  43.  
  44. The programs in the PMsndX family also were written specifically for OS/2 and 
  45. you will not find another program with the same look and feel under any other 
  46. operating system.  The user interface was designed from scratch under OS/2 and 
  47. is not a port from any other system.  As a result, it takes full advantage of 
  48. the capabilities of OS/2 and has been written to conform to IBM's goals with 
  49. the Common User Access specifications. 
  50.  
  51. EdSndX: provides most of the functionality that was in PMsndX prior to 2.0. 
  52. Notably missing from EdSndX is the ability to play from the command line.  This 
  53. rewrite took about 6 months to complete and provides a complete Multiple 
  54. Document Interface (MDI) capability.  Hence, the name change as a result of the 
  55. change from a do-all program to a more capable sound editor. 
  56.  
  57. PlSndX: provides the ability to play any of the sound samples which can be 
  58. loaded by EdSndX from the command line or through Drag/Drop.  PlSndX does not 
  59. provide any editing features but does provide the capability to save a sample 
  60. in any of the supported formats.  Further, it has some enhancements to reduce 
  61. the memory requirements of the program during playback. 
  62.  
  63.  
  64. ΓòÉΓòÉΓòÉ 2. EdSndX ΓòÉΓòÉΓòÉ
  65.  
  66.                                    PMsndX 2.22
  67.                                        by
  68.                                 William S. Hiles
  69.                              copyright WiSHware Inc.
  70.  
  71. EdSndX is one part of the family of programs grouped under the name PMsndX. 
  72. EdSndX goes beyond just a cut and paste tool for sound by providing a rich set 
  73. of tools for manipulating samples in memory. EdSndX utilizes multiple threads, 
  74. the clipboard, Drag/Drop, and the MMPM/2 services present in the Workplace 
  75. Shell to provide a robust editor for everyone from the beginner to the more 
  76. advanced users.  Like all of the tools in the PMsndX family, EdSndX can be run 
  77. on any system regardless of whether MMPM/2 is installed because all of the 
  78. routines were written from hand including the animated buttons and routines for 
  79. reading and writing the various sound formats.  Additional advantages to this 
  80. approach include a greater degree of control and some customized features like 
  81. the volume control that you will not find anywhere else.  The obvious 
  82. disadvantage is that the routines that IBM provides in the MMPM/2 DLLs have 
  83. been thoroughly tested and may be more robust that the ones that I have 
  84. provided. 
  85.  
  86.  
  87. ΓòÉΓòÉΓòÉ 2.1. Control Panel ΓòÉΓòÉΓòÉ
  88.  
  89. The control panel is the central point of control for EdSndX.  From the control 
  90. panel, the EDITOR, PROPERTIES, TOOLS, and HELP can be launched.  The control 
  91. panel has a system menu which provides access to the standard OS/2 menu 
  92. controls.  Additionally, the system menu for the control panel provides access 
  93. to the ABOUT, WELCOME, HELP, RESET SIZE, PROPERTIES, and FILE LIST. 
  94.  
  95. The control panel is a window under the OS/2 Workplace Shell and as such can be 
  96. resized using the border of the window. See reset size for instructions on 
  97. restoring the default size. 
  98.  
  99. The control panel is also the place to receive drag/drop operations.  Such 
  100. operations are accomplished by dragging a sound file to the control panel and 
  101. dropping it anywhere within the border of the panel and below the titlebar. 
  102. EdSndX will automatically open an editor for the sample. See drag/drop for more 
  103. information on  performing drag/drop operations. 
  104.  
  105.  
  106. ΓòÉΓòÉΓòÉ 2.1.1. System Menu ΓòÉΓòÉΓòÉ
  107.  
  108. As with any OS/2 program written for the Presentation Manager, EdSndX has an 
  109. icon in the top left corner of the control panel for accessing a system menu. 
  110.  
  111. The menu items provided in the system menu are: 
  112.  
  113.  Restore        Restore the windows after being minimized 
  114.  Move           Move the control window 
  115.  Size           Resize the main control panel 
  116.  Minimize       Minimize all of the windows of EdSndX to an icon 
  117.  Close          Close the all windows and exit 
  118.  About          Display information about the author and version and 
  119.                 registration 
  120.  Welcome        Display information about what is new to this version 
  121.  Help           Bring up the help system 
  122.  Reset Size     Reset the size of the main control panel to the default 
  123.  Properties     Change program operational parameters 
  124.  File List      List open files and switch focus 
  125.  
  126.  
  127. ΓòÉΓòÉΓòÉ 2.1.1.1. Restore ΓòÉΓòÉΓòÉ
  128.  
  129. During the use of EdSndX, the user may select to Minimize the windows to an 
  130. icon on the desktop.  To restore the window from the icon the user may either 
  131. double click on the icon or may press a mouse button while the pointer is over 
  132. the icon to bring up the system menu and select the restore item. 
  133.  
  134.  
  135. ΓòÉΓòÉΓòÉ 2.1.1.2. Move ΓòÉΓòÉΓòÉ
  136.  
  137. EdSndX provides the standard controls for moving the windows around on the 
  138. desktop.  It is generally easiest to use the mouse to select the titlebar of 
  139. the window and drag the window to the new location.  If the user uses the 
  140. system menu to move the window, the mouse will be centered in the control 
  141. window and any movement of the mouse will move the window until a mouse button 
  142. is pressed. 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ 2.1.1.3. Size ΓòÉΓòÉΓòÉ
  146.  
  147. EdSndX provides the standard control for resizing the main control panel.  When 
  148. resizing, the main control panel will automatically adjust the vertical size of 
  149. the window to maintain the aspect of the buttons. 
  150.  
  151.  
  152. ΓòÉΓòÉΓòÉ 2.1.1.4. Minimize ΓòÉΓòÉΓòÉ
  153.  
  154. All of the windows of EdSndX can be minimized quickly by either selecting the 
  155. minimize button on the upper right corner of the control panel or by using the 
  156. Minimize menu item of the system menu.  Either action performs the same 
  157. function. 
  158.  
  159.  
  160. ΓòÉΓòÉΓòÉ 2.1.1.5. Close ΓòÉΓòÉΓòÉ
  161.  
  162. To exit EdSndX the user can select the Close menu item from the system menu. 
  163. This is the default selection of the menu which enables the user to double 
  164. click on the EdSndX icon in the top left corner of the control panel to exit 
  165. the program. 
  166.  
  167. When the any of the PMsndX programs are terminated, if changes have been made 
  168. to the Properties box, the data will be saved to the initialization file before 
  169. the program exits.  Before exiting, EdSndX requests verification that the user 
  170. wants to exit to prevent accidentally exiting. All windows of EdSndX, including 
  171. any dialog boxes, are removed from the screen when the program terminates. 
  172.  
  173. If the data in the memory buffers has been modified, EdSndX will warn the user 
  174. that there are modified buffers and ask for verification that the user really 
  175. wants to exit. 
  176.  
  177.  
  178. ΓòÉΓòÉΓòÉ 2.1.1.6. About ΓòÉΓòÉΓòÉ
  179.  
  180. To find the version and other information about EdSndX the About menu item can 
  181. be selected from the system menu. The registration can be updated by pressing 
  182. the REGISTER button. 
  183.  
  184. PMsndX is just one of the programs written by the Author for Intel based 
  185. machines.  All programs developed under the WiSHware Inc. name have been 
  186. developed solely by the author (duhh, the Author is the sole member of the 
  187. company) and are copyrighted by US Copyright laws. 
  188.  
  189.  
  190. ΓòÉΓòÉΓòÉ 2.1.1.7. Welcome ΓòÉΓòÉΓòÉ
  191.  
  192. The HISTORY.TXT file contains a very complete list of all the changes between 
  193. each of the versions.  When viewed as a whole, it also summarizes the total 
  194. functionality of PMsndX.  Each version has specific changes which are 
  195. highlighted in the Welcome display. This display also shows the current 
  196. registration status of the program and the registration can be updated by 
  197. pressing the REGISTER button. 
  198.  
  199.  
  200. ΓòÉΓòÉΓòÉ 2.1.1.8. Help ΓòÉΓòÉΓòÉ
  201.  
  202. PMsndX is equipped with extensive on line help that can be accessed by 
  203. selecting HELP from the system menu or from the main control panel.  When this 
  204. item is selected a window will appear which will display the start of the help 
  205. information. Help can also be accessed by pressing Alt-H or the F1 key. 
  206.  
  207. Links to other text is displayed in a blue-green color and can be selected to 
  208. jump to that description in the text. When the control panel buttons appear in 
  209. a tabular form, the buttons are active links in the help like the blue-green 
  210. colored text.  Pressing these buttons will jump to the respective text. 
  211.  
  212.  
  213. ΓòÉΓòÉΓòÉ 2.1.1.9. Reset Size ΓòÉΓòÉΓòÉ
  214.  
  215. The default button size for the display is 64x64. At any time, the user may 
  216. select to reset the size of the main control panel so that it returns to the 
  217. defaults.  The main control panel may be resized, using the border of the 
  218. window. 
  219.  
  220.  
  221. ΓòÉΓòÉΓòÉ 2.1.1.10. Program Properties ΓòÉΓòÉΓòÉ
  222.  
  223. The Properties menu item will bring up the same dialog that is accessed from 
  224. the PROPS button on the control panel. 
  225.  
  226.  
  227. ΓòÉΓòÉΓòÉ 2.1.1.11. File List ΓòÉΓòÉΓòÉ
  228.  
  229. Each window of the editor is part of the same thread as the control panel. 
  230. Although these are part of the same thread, they have been set up to also 
  231. appear in the task list. This has the advantage that each edit window can be 
  232. brought to the focus simply by bringing up the task list.  But, this has some 
  233. disadvantages too.  Firstly, EdSndX allows the operator to open more than one 
  234. copy of the same file at a time and multiple new files are simply named 
  235. Untitled. As a result, it is difficult to tell which file is which in the task 
  236. list.  Secondly, the task list provides the ability to close a particular 
  237. window by killing its thread.  Since all edit windows are a member of the same 
  238. common thread, killing any one of them kills the thread and all windows 
  239. associated with it.  By creating a File List, unique numbers are assigned to 
  240. each file that allow the operator to identify the file that is being used. 
  241. These numbers are also by the REXX processor as handles to identify the 
  242. samples. 
  243.  
  244. To give a particular window a focus select the name of the file to receive the 
  245. focus and either select the APPLY button or double click on the entry. If the 
  246. selected window has been minimized, it will be restored upon receiving the 
  247. focus. 
  248.  
  249.  
  250. ΓòÉΓòÉΓòÉ 2.1.2. Resizing the main panel ΓòÉΓòÉΓòÉ
  251.  
  252. In accordance with the recommended Common User Access (CUA) guidelines, the 
  253. main control panel may be resized using the border of the window.  The 
  254. horizontal and vertical proportions of the buttons are always fixed such that 
  255. the overall window proportions will display the buttons properly. When the 
  256. width of the main panel is changed, the height is automatically adjusted to 
  257. maintain the proper shape of the buttons. 
  258.  
  259. Note:  Note.  To resize the window, either the corners or the vertical sides of 
  260.        the window must be used.  The horizontal sides of the window have no 
  261.        effect when used alone. 
  262.  
  263.  
  264. ΓòÉΓòÉΓòÉ 2.1.3. Buttons ΓòÉΓòÉΓòÉ
  265.  
  266. The main control panel provides the user with access to all tools and functions 
  267. through a set of buttons.  Each button contains an icon and a single word which 
  268. describes the function of the button. The buttons have been designed as toggle 
  269. type push buttons.  To select a particular button, click over the desired area 
  270. with the first mouse button.  This will depress the button and activate a 
  271. dialog for the desired function.  The dialogs present information to the user 
  272. about the desired operation and request input from the user to complete the 
  273. operation.  The exception to this operation is the Help, and New buttons 
  274. because they can be used even when an instance of their respective function has 
  275. been created. 
  276.  
  277. The control panel is the main point of control for both activating and 
  278. deactivating a particular function.  The dialog boxes can be removed from the 
  279. screen by positioning the mouse over a depressed button and pressing the first 
  280. mouse button.  The dialog box will be removed and the button will return to the 
  281. non-depressed position. It is important to note that when a dialog box is 
  282. removed through this means, any information in the dialog is ignored and the 
  283. function is canceled.  For each dialog box, the user must enter all of the 
  284. information required and then select the appropriate action on the push buttons 
  285. at the bottom of the dialog box. 
  286.  
  287. Now for the buttons.  There are five buttons on the main control panel.  These 
  288. are listed below with a brief explanation of their function. 
  289.  
  290.                 Opens and reads a new sample file 
  291.                 Opens an empty window for editing 
  292.                 Opens up properties display 
  293.                 Opens the toolbox for performing DSP operations 
  294.                 Starts the help window 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 2.1.3.1. Open ΓòÉΓòÉΓòÉ
  298.  
  299. The dialog box for opening a file and reading the sample into memory is 
  300. accessed from the OPEN button on the main control panel.  When reading in a 
  301. file, PMsndX will attempt to open the file as the type indicated by the 
  302. extension on the filename.  However, in the event that the file cannot be 
  303. loaded by the extension, PMsndX will automatically try to determine the type of 
  304. the file as it reads it based on any header that may be present.  If the sample 
  305. header does not match any of the known header types, PMsndX will refuse to load 
  306. the file unless the format of the file is specified in the OPEN dialog box. 
  307.  
  308. Note:  The formats that are supported by the family of PMsndX programs are 
  309.        listed in the OPEN dialog box.  If PMsndX has not been registered, only 
  310.        the WAV and AU formats will be available. 
  311.  
  312.  The file box allows for multiple selections by using either the CTRL or SHIFT 
  313.  keys in combination with the mouse pointer.  When multiple selections are 
  314.  used, the Full Filename field is updated with the last item selected or 
  315.  deselected.  When the LOAD button is pressed, the selections are all fully 
  316.  qualified and each file starts loading sequentially as if they had been 
  317.  entered on the command line. 
  318.  
  319.  When loading a file, the user may select to force PMsndX to load a file in a 
  320.  specific format.  This is required to load headerless formats (i.e. the 
  321.  formats marked as RAW).  To override the file format, select one of the 
  322.  formats in the Format pulldown list. 
  323.  
  324.  Note:  If a Format override is specified, the file must still match the given 
  325.         format if it contains a header.  EdSndX will automatically recognize 
  326.         the header format and load it using the correct format. 
  327.  
  328.  The default filename to open is the last file that was successfully opened. 
  329.  The name of the file to be opened may be selected in a number of ways.  The 
  330.  filename may be entered in the Full Filename entry field.  The name may be 
  331.  fully qualified with a drive and directory, or may be any valid filename.  The 
  332.  name will be resolved when passed to the OS/2 IO procedures.  The filename may 
  333.  also be selected by choosing the drive, directory, and name using the 
  334.  corresponding list boxes.  The files to be displayed in the File display are 
  335.  controlled by the File Mask selected. Finally, whenever a file is successfully 
  336.  loaded, it is added to the Full Filename list box.  The previously loaded file 
  337.  names can be displayed by pulling down the list box. 
  338.  
  339.  Note:  The cache of successfully opened files can be saved between sessions by 
  340.         selecting Save file Open paths in the Properties box. 
  341.  
  342.  Once a file has been selected, either double click on the file name or press 
  343.  the Load button.  During the time that the file is being loaded, the user may 
  344.  press the Abort button to stop the loading process. The process for opening a 
  345.  file initiates a new thread for each file name loaded.  As a result, if more 
  346.  than one is being loaded, there is no way to abort the loading of a file once 
  347.  the next file has started loading. Additionally, if the OPEN dialog is 
  348.  dismissed while the loading thread has started, there is no way to abort the 
  349.  load. 
  350.  
  351.  The File Mask list box contains the common filters for extensions that PMsndX 
  352.  recognizes.  This list box can be edited for any mask that the user needs. 
  353.  
  354.  The Format list box contains the common file FORMATS that PMsndX recognizes. 
  355.  Each format identifies the type as well as the extension that PMsndX 
  356.  recognizes.  This list is not editable and is loaded with only those formats 
  357.  that are currently supported.  If PMsndX has not been registered, the listed 
  358.  formats may be considerably less than the total of fully supported formats. 
  359.  
  360.  By default, the OPEN dialog box is automatically dismissed when the file has 
  361.  been loaded.  When multiple files are selected to be loaded, the dialog is 
  362.  dismissed if any one of the selected files is successfully loaded.  If an 
  363.  error occurs during the loading process, the dialog will not automatically 
  364.  dismiss itself.  To disable this feature (i.e. force the dialog box to remain 
  365.  visible even after a file has been loaded) deselect the AUTO Dismiss checkbox 
  366.  on the STARTUP properties page. 
  367.  
  368.  
  369. ΓòÉΓòÉΓòÉ 2.1.3.2. New ΓòÉΓòÉΓòÉ
  370.  
  371. To facilitate creating new sound files (through any input means such as the 
  372. microphone, line input, or the clipboard), an empty edit window can be opened 
  373. by selecting NEW from the control panel.  The initial file name will be 
  374. undefined and the SAVE AS dialog box will automatically be required to save the 
  375. file with a user defined file name. 
  376.  
  377. See Record setup for instructions on recording a sample. 
  378.  
  379.  
  380. ΓòÉΓòÉΓòÉ 2.1.3.3. Properties ΓòÉΓòÉΓòÉ
  381.  
  382.  The properties button on the control panel provides access to the settings for 
  383. options that are stored in the initialization file between sessions.  The 
  384. properties dialog can be accessed from this button or through the system menu. 
  385.  
  386.  
  387. ΓòÉΓòÉΓòÉ 2.1.3.4. Tools ΓòÉΓòÉΓòÉ
  388.  
  389. The toolbox is a means to access special digital processing routines.  The 
  390. toolbox is displayed as a notebook in which each page represents a different 
  391. tool with specific settings that are related to that tool. See Tools for a full 
  392. description of the toolbox and its controls. 
  393.  
  394. The toolbox represents a common resource for any edit window that is open.  As 
  395. such, the toolbox must be associated with a particular edit window before it 
  396. can be used.  When the toolbox is associated with a window, it will display the 
  397. name of the file for the association in the titlebar. See Editor Switch to for 
  398. associating the toolbox with a particular edit window. 
  399.  
  400.  
  401. ΓòÉΓòÉΓòÉ 2.1.3.5. Help ΓòÉΓòÉΓòÉ
  402.  
  403. To start the help viewer for EdSndX, the HELP button may be pressed. 
  404. Additionally, the help may be accessed through the system menu help item. 
  405. Further, help may be accessed from any window by pressing the F1 key. 
  406.  
  407.  
  408. ΓòÉΓòÉΓòÉ 2.1.3.6. Footnote ΓòÉΓòÉΓòÉ
  409.  
  410. The main control panel may optionally display a footnote which provides a short 
  411. description of the current item under the mouse pointer.  This footnote display 
  412. can be turned on or off through the properties dialog box.  Note that when the 
  413. footnote display is turned on or off, the change does not take effect till the 
  414. next time in which EdSndX is executed. 
  415.  
  416.  
  417. ΓòÉΓòÉΓòÉ 2.2. Editor ΓòÉΓòÉΓòÉ
  418.  
  419. The editor is the main point of control for manipulating samples in memory. 
  420. Whenever a sample is loaded into memory, it is displayed in an edit window. 
  421. There can be multiple samples open simultaneously and each has an associated 
  422. window.  Additionally, when a new sample is to be created, an edit window is 
  423. opened for the creation of the data. 
  424.  
  425. The following figure shows all of the fields of an edit window for a sample 
  426. containing two channels. 
  427.  
  428.  
  429. ΓòÉΓòÉΓòÉ 2.2.1. Resizing the editor ΓòÉΓòÉΓòÉ
  430.  
  431. EdSndX has the ability to store the size of the edit window between sessions. 
  432. This feature can be disabled through the properties dialog by checking the Save 
  433. Window positions checkbox.  If this box is cleared, the editor will not save 
  434. its size and will automatically open with a default window size that is 
  435. reasonably sized to display all information. 
  436.  
  437. When resizing the editor, all of the windows of the editor automatically resize 
  438. too.  It is possible to size the editor such that the text of some windows will 
  439. not be adequately sized to hold all information. 
  440.  
  441.  
  442. ΓòÉΓòÉΓòÉ 2.2.2. Mouse Buttons ΓòÉΓòÉΓòÉ
  443.  
  444. IBM has not defined the usage of the mouse buttons in the CUA guidelines. 
  445. EdSndX uses the mouse for selection of fields within the graphical displays and 
  446. for pulling up menus for special operations within the control windows. 
  447.  
  448. Button 1 (Left Mouse Button) is used to edit data in control windows or modify 
  449. the position of the highlighted area in the graphical windows.  When working in 
  450. the graphical displays, the mouse has different effects depending on the 
  451. selected display mode (see Fast Full display or Fast Channel display) 
  452.  
  453. Button 2 (Right mouse Button) is used to access popup menus for a control 
  454. window or the graphical windows by a single click of the mouse. 
  455.  
  456. When in Fast Channel display or Fast Full display mode, BUTTON 1 is used to 
  457. drag the highlighted area.  Otherwise a popup menu is accessed by double 
  458. clicking BUTTON 1.  Regardless of the display mode, the popup menus are 
  459. accessed using BUTTON 2. These same markers can be set through the menu bar. 
  460. The control windows also provide special popup menus for setting their values 
  461. and are identical to those found in the menu bar. 
  462.  
  463.  
  464. ΓòÉΓòÉΓòÉ 2.2.3. Titlebar ΓòÉΓòÉΓòÉ
  465.  
  466. The titlebar of the edit window displays the file name of the current sample 
  467. for the window.  This is the same name that appears in the File list on the 
  468. main control panel.  If a file has no filename, the titlebar shows (not named). 
  469. Since multiple copies of the same file can be opened simultaneously, each file 
  470. is displayed with a unique number in all references to the file names.  This 
  471. additional information can be used by the operator to determine which edit 
  472. window is associated with the name in the file list. 
  473.  
  474.  
  475. ΓòÉΓòÉΓòÉ 2.2.4. Regions ΓòÉΓòÉΓòÉ
  476.  
  477. The editor is divided into regions which display information about a particular 
  478. sample.  These regions are menu, info*, full graph, display position, channel 
  479. data, controls, and audio. Each region serves a common function for the editing 
  480. of data as explained below. 
  481.  
  482. Note:  * The info region is optional and may be removed or added using the 
  483.        Display Info. 
  484.  
  485.  menu              Select options and perform operations using the pulldown 
  486.                    menu 
  487.  info*             Display and change information in the header of a sample 
  488.  full graph        Displays the first channel of a sample and provides visual 
  489.                    clues for the selected range within the sample 
  490.  display position  Indicates the viewable regions of the sample and scrolls 
  491.                    within the full graph 
  492.  channel data      Displays one or all channels of a sample 
  493.  controls          Provides display controls and feedback on operations 
  494.  audio             Provides access to MMPM/2 if present 
  495.  
  496.  
  497. ΓòÉΓòÉΓòÉ 2.2.4.1. Menu ΓòÉΓòÉΓòÉ
  498.  
  499. The menu bar is used to access all of the features of the editor. See Menu Bar 
  500. for a complete description of the menu structure. 
  501.  
  502.  
  503. ΓòÉΓòÉΓòÉ 2.2.4.2. Info ΓòÉΓòÉΓòÉ
  504.  
  505. The information display of the editor is optional.  The menu item Display Info 
  506. can be used to change the status of the display of the information area. 
  507.  
  508. The information display contains all of the data needed to save a file in any 
  509. format.  The information region does more than simply display the header 
  510. information for a sample.  It also allows the operator to edit the various 
  511. attributes about a sample.  Many sample formats can save the data in a number 
  512. of different styles but some are limited in their representation.  Changes made 
  513. to the information area may be overridden when a sample is saved to ensure that 
  514. the sample conforms to the particular sample format. The data displayed in the 
  515. editor information region is identical to that of the toolbox Info page with 
  516. the exception that the toolbox information display does not allow the operator 
  517. to edit the information. 
  518.  
  519. The following information is displayed in this region: 
  520.  
  521.  Format            the machine or operating system that the particular format 
  522.                    is native to 
  523.  Type              the format specification for a file 
  524.  Style             the data style of each sample 
  525.  Size              the size of each sample 
  526.  Channels          the number of channels contained in the file 
  527.  Rate              the sampling rate used to record and play the samples 
  528.  Samples           the number of samples in the file 
  529.  Order             the ordering of the bytes within each sample 
  530.  Comment           the comment associated with the samples 
  531.  
  532.  
  533. ΓòÉΓòÉΓòÉ 2.2.4.2.1. Format ΓòÉΓòÉΓòÉ
  534.  
  535. For every operating system, the manufacturer seems to choose to create a new 
  536. audio format which is native to the hardware of the machine.  As a side note, 
  537. PMsndX was created because there are so many sample formats in use that there 
  538. was a need to convert samples from one format to another so that they could be 
  539. shared between machines. 
  540.  
  541. The pulldown list for the Format of a file allows the operator to select a 
  542. particular format and automatically change the other fields in the information 
  543. display to reflect any requirements of the selected format.  This is an 
  544. important feature because some sample formats do not support all styles and 
  545. sizes of data.  As an example, if a sample is currently a sun .AU format, when 
  546. it is changed to a OS/2 .WAV file, the style will automatically change to 
  547. Signed. This is because the .WAV format does not support u-law styles.  Also, 
  548. the Sun .AU format is a big-endian format whereas the .WAV format is a 
  549. little-endian format. 
  550.  
  551. The selections in this list are identical to the selections provided by the 
  552. Format toolbox page.  See FORMATS for a description of the formats supported by 
  553. the PMsndX programs.  The significant difference in this field is that it does 
  554. not automatically change the extension of the file to be saved. 
  555.  
  556. The format RAW is a special format which is a file containing raw data without 
  557. a header.  Since a RAW file does not contain the necessary information to load 
  558. it, PMsndX will request that the user provide the necessary information to 
  559. identify the file including the style, size, and order of the samples. 
  560. Additionally, the number of channels may be required for a file.  When the RAW 
  561. format is used, the Type information field will indicate the actual RAW type. 
  562.  
  563.  
  564. ΓòÉΓòÉΓòÉ 2.2.4.2.2. Type ΓòÉΓòÉΓòÉ
  565.  
  566. Every machine and operating system type listed in the Format list box 
  567. correspond to a defined standard format.  Every standard format defines the 
  568. style, size, and order of the data that can be stored in the file.  Some 
  569. formats support multiple styles and sizes and some even support different 
  570. orders.  Changes to this field are automatically reflected in the filename by 
  571. changing the extension of the file to that of the selected type. 
  572.  
  573. The type of file is identified by both a standard name and a file type.  The 
  574. standard name is used to indicate some document or name that a manufacturer has 
  575. chosen for the format.  The file type is listed in parenthesis and identifies 
  576. the extension that the file is normally saved with.  When a file is saved, the 
  577. file extension is used to determine the way that the file is saved or loaded 
  578. unless an override is used in the file dialog box.  This field indicates the 
  579. anticipated data format for each of the file types supported by PMsndX. 
  580.  
  581. The selections in this list are identical to the selections provided by the 
  582. Format toolbox page.  See FORMATS for a description of the formats supported by 
  583. the PMsndX programs. 
  584.  
  585.  
  586. ΓòÉΓòÉΓòÉ 2.2.4.2.3. Style ΓòÉΓòÉΓòÉ
  587.  
  588. The style of a sample indicates the interpretation of the bits in the file 
  589. which is stored on disk.  PMsndX programs support three basic styles including 
  590. Signed, Unsigned, and U-Law 
  591.  
  592. Signed data indicates that the sequence of bits for each sample contains a bit 
  593. in the highest position to indicate that the sample is either positive or 
  594. negative.  As an example, for an eight bit sample format which is signed (in 
  595. which the bits are numbered from left to right from 7 to 0) the bit numbered 7 
  596. is reserved to indicate the sign.  All data is converted to signed data when it 
  597. is stored in memory. 
  598.  
  599. Unsigned data indicates that there is no sign bit in the data.  Consequently, 
  600. the data may only take on positive values.  PMsndX automatically converts all 
  601. unsigned data to signed data as it stores it in memory. 
  602.  
  603. U-Law data indicates that 16 bits of data has been compressed into 8 bits of 
  604. storage space when saved to disk.  This format uses a compression technique 
  605. which is lossy because it does not store the exact samples and the sample 
  606. cannot be exactly recreated from the file once it has been saved. U-Law is one 
  607. of the most popular formats on the Internet because the storage space is small 
  608. and the loss in quality is tolerable to the human ear.  U-Law capitalizes on 
  609. the fact that the human ear cannot distinguish frequencies outside of a 
  610. particular range and also cannot easily distinguish between very similar 
  611. frequencies. 
  612.  
  613. Not all sample formats support all styles.  If a sound format is selected which 
  614. does not support a particular style, EdSndX will automatically use the correct 
  615. style required by that format.  To determine if a format supports a particular 
  616. style, change the style first, and then select the particular format.  If the 
  617. format does not support the selected style, the style field will change to the 
  618. supported style. 
  619.  
  620. When a RAW format is loaded into memory, the operator inadvertently specifies 
  621. the style of the data when the format is specified.  For example, RAW (.sb) 
  622. indicates signed data from the first letter in the extension. 
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ 2.2.4.2.4. Size ΓòÉΓòÉΓòÉ
  626.  
  627. All data is represented by a series of bits.  A bit is the smallest piece of 
  628. information that the computer can manipulate.  16 bit samples are called WORDS 
  629. and 8 bit samples are called BYTES. The groupings of bits indicate the quality 
  630. of the sample that is stored in memory or in a file.  A larger number of bits 
  631. represents higher quality sound; however, a larger number of bits represents 
  632. more storage space too. PMsndX can deal with samples which are stored in any 
  633. size of up to 16 bits. 
  634.  
  635. The size of a sample is an important factor when playing audio.  Some sound 
  636. adapters do not support 16 bit samples and cannot play such samples.  PMsndX 
  637. can still play these samples in the lower quality 8 bit sample format.  This 
  638. feature can be defeated using the Play 16 bits on 8 bit audio property. 
  639.  
  640. Some sizes are not supported by all formats and in some cases, the style of the 
  641. data is dependent on the size.  As an example, .WAV files which are 16 bits 
  642. must be signed whereas 8 bit samples must be stored as unsigned.  The .hcm 
  643. format only supports 8 bit data.  PMsndX considers the size of a sample to be 
  644. the most important factor when converting data between formats in order to 
  645. maintain the same quality of data once saved to disk.  However, if a format 
  646. does not support 16 bit data, PMsndX will automatically change the size to 8 
  647. bits when it saves the file or when the format is changed. 
  648.  
  649. When a RAW format is loaded into memory, the operator inadvertently specifies 
  650. the size of the data by the format selected.  As an example, RAW (.sb) 
  651. indicates that the format is 8 bits because the second letter is b for byte. 
  652.  
  653.  
  654. ΓòÉΓòÉΓòÉ 2.2.4.2.5. Channels ΓòÉΓòÉΓòÉ
  655.  
  656. Many audio formats support more than one channel.  The channels in a sample 
  657. affect the memory requirements of the sample and the display of the data.  For 
  658. this reason, changing the number of channels requires that the data for the 
  659. file be manipulated.  To change the number of channels for a sample, use the 
  660. Avg or Dupe tools. 
  661.  
  662. When a RAW format is loaded into memory, the operator will be required to 
  663. specify the number of channels of the data because RAW formats do not contain 
  664. headers to allow PMsndX to determine the number of channels in the file. 
  665. Additionally, when a raw format is loaded, it is assumed that the channels are 
  666. interleaved in the sample.  There are formats which do not interleave the 
  667. channels and these cannot be loaded without headers. 
  668.  
  669.  
  670. ΓòÉΓòÉΓòÉ 2.2.4.2.6. Rate ΓòÉΓòÉΓòÉ
  671.  
  672. The rate field indicates that rate in samples per second that a sample was 
  673. recorded and stored.  The rate determines how quickly the samples are played 
  674. back also.  When the rate of playback is changed, the number of samples stored 
  675. in memory changes and so this field is not editable through the information 
  676. display.  See Rate, Speed, or Playback speed, for tools to change the rate of a 
  677. sample. 
  678.  
  679. When a RAW format is loaded into memory, the operator will be required to 
  680. specify the rate of the data that is stored in the file.  This is because there 
  681. is no header in the file to indicate the rate of the data. 
  682.  
  683.  
  684. ΓòÉΓòÉΓòÉ 2.2.4.2.7. Samples ΓòÉΓòÉΓòÉ
  685.  
  686. The number of samples in the file is indicated by both the total number of 
  687. samples and the samples per channel.  When a file is made of a single channel, 
  688. both numbers will be identical.  The length of the file determines the memory 
  689. requirements of the sample.  The length is affected by almost all operations in 
  690. the toolbox. 
  691.  
  692.  
  693. ΓòÉΓòÉΓòÉ 2.2.4.2.8. Order ΓòÉΓòÉΓòÉ
  694.  
  695. Every machine conforms to either BIT ENDIAN or LITTLE ENDIAN.  The order of the 
  696. bits in the sample are important because they determine the sequence of the 
  697. bits in the bytes.  Intel based machines are LITTLE ENDIAN because they reverse 
  698. the order of bytes that make up a sample.  Motorola based processors use BIG 
  699. ENDIAN. The trade-offs for using BIG and LITTLE endian are minor but are 
  700. significant when reading data from different machines. 
  701.  
  702. When a RAW 16 bit format is loaded into memory, the operator must specify that 
  703. the data is either BIG or LITTLE endian to ensure that the byte order is 
  704. correct.  If a RAW format is loaded and it appears to be randomly garbled, try 
  705. loading it with a different order. 
  706.  
  707.  
  708. ΓòÉΓòÉΓòÉ 2.2.4.2.9. Comment ΓòÉΓòÉΓòÉ
  709.  
  710. Almost all sound formats support the inclusion of a string of text embedded in 
  711. the header of the file.  The comment field of the information display can be 
  712. used to change the comment when it is saved back to disk.  If a file is loaded 
  713. which does not contain a comment or a file is created with PMsndX, the default 
  714. comment of Edited by PMsndX is automatically created. 
  715.  
  716.  
  717. ΓòÉΓòÉΓòÉ 2.2.4.3. Full Graph ΓòÉΓòÉΓòÉ
  718.  
  719. One of the biggest problems with editing audio samples is the quantity of data 
  720. that even the smallest audio sample contains.  As an example, one second of 
  721. audio for a single channel at 11025 Hz contains over 10,000 samples of data. 
  722. When editing a sample, the actual position of the operations that are being 
  723. performed need a reference display to indicate a relative position within the 
  724. total sample. EdSndX provides this in the form of the Full Graph region.  This 
  725. graph displays the first channel of the sample along with the current audio 
  726. playback position, start of a range, and end of a range.  This display in 
  727. combination with the Horizontal Position bar below it provides enough 
  728. information to determine where the channel displays are within the scope of the 
  729. entire sample. 
  730.  
  731. The full display is the primary point of reference for all editing operations. 
  732. The current playback position, the range, and even the level of zoom can be 
  733. affected by the full display. 
  734.  
  735. The full display can be used to set the range of operation for the tools and 
  736. for the audio playback using the second mouse button to select either Start or 
  737. End in the popup menu of the full display.  Additionally, if Fast Full display 
  738. is set, BUTTON 1 of the mouse can be used to drag the Start or End of the 
  739. selected area. By default, when a sample is loaded, the entire sample is 
  740. selected as indicated by the entire sample being displayed in the light yellow 
  741. color. 
  742.  
  743. The full display can be used to set the PLAY position within the sample by 
  744. moving the mouse to the desired position and pressing the second mouse button. 
  745. This brings up a popup menu in which the operator may select Play Position. The 
  746. PLAY control window will be updated with the new play back position and a 
  747. vertical bar will be displayed.  During audio playback, this bar will move 
  748. across the display to provide a rough indicator of the current position of 
  749. playback within the sample. 
  750.  
  751.  
  752. ΓòÉΓòÉΓòÉ 2.2.4.4. Horizontal Position ΓòÉΓòÉΓòÉ
  753.  
  754. The Horizontal Position bar is directly below the full display graph and is 
  755. used to indicate the portion of the display which is viewable in the lower 
  756. channel displays. This bar operates much like a conventional scroll bar with 
  757. the exception that the range of the display is indicated by a simple line with 
  758. markers on the ends. 
  759.  
  760. As indicated in the following figure, the width of the line for the horizontal 
  761. position changes depending on the level of Zoom that has been selected. 
  762.  
  763. When a zoom level other than MIN has been set, the horizontal position can be 
  764. moved by either dragging the display to the position that is desired or by 
  765. clicking on either the buttons at the end of the display or by clicking on the 
  766. region to the left and right of the bar.  When the buttons are clicked, the 
  767. display moves 1/20 the width of the channel graph in the direction of the 
  768. button.  When the area to the left or right of the bar is selected, the display 
  769. moves 1/2 the width of the channel graph in the direction of the side selected. 
  770.  
  771.  
  772. ΓòÉΓòÉΓòÉ 2.2.4.5. Channel Graph ΓòÉΓòÉΓòÉ
  773.  
  774. EdSndX has the capability to display and edit either a single channel at a time 
  775. or all channels at once.  The following diagram shows the channel display when 
  776. a single channel is displayed. 
  777.  
  778. When displaying a single channel of a sample, a vertical scroll bar appears to 
  779. the right of the display if the sample has more than one channel.  This scroll 
  780. bar is used to move between the individual channels.  When using the tools and 
  781. the checkbox for the selected channel is checked, the displayed channel in the 
  782. editor is the one that will be affected. 
  783.  
  784. The following diagram shows the channel display when all channels are 
  785. displayed. 
  786.  
  787. Notice that when this mode is set, all the channels of the sample are displayed 
  788. in the same space that a single channel was displayed an the vertical scroll 
  789. bar is removed.  When in this mode, all tool operations will occur on all 
  790. channels of the sample. 
  791.  
  792. The mode of operation to be used is stored in the .ini between each session. 
  793. Changes in mode are seen immediately. The channel display can be used in the 
  794. same way that the full display is used for selecting the play position and 
  795. range.  The area of the data displayed is indicated by the horizontal position 
  796. indicator below the full display.  The viewing region is indicated by the width 
  797. and position of the bar. 
  798.  
  799. The channel display can be used to set the range of operation for the tools and 
  800. for the audio playback using the second mouse button to select either Start or 
  801. End in the popup menu of the channel display.  Additionally, if Fast Channel 
  802. display is set, BUTTON 1 of the mouse can be used to drag the Start or End of 
  803. the selected area. 
  804.  
  805.  
  806. ΓòÉΓòÉΓòÉ 2.2.4.6. Controls ΓòÉΓòÉΓòÉ
  807.  
  808. EdSndX provides a control area where the status of the various regions are 
  809. displayed.  This area also provides a means to edit the information by either 
  810. double clicking on the entry with the first mouse button or by bringing up a 
  811. menu with the second mouse button.  The following fields are used to manipulate 
  812. the display. 
  813.  
  814.  Start             Indicates/sets the start of the selected range 
  815.  End               Indicates/sets the end of the selected range 
  816.  Play              Indicates/sets the position to start playback and the mode 
  817.                    of playback operations 
  818.  Zoom              Indicates/sets the current zoom level and mode of operation 
  819.  Cursor            Indicates the current cursor position over the window and 
  820.                    sets starting point for the channel display 
  821.  Footnote          Displays a short string of text for the window under the 
  822.                    cursor 
  823.  Percent           Displays the progress of the current operation and the 
  824.                    status of the data 
  825.  
  826.  
  827. ΓòÉΓòÉΓòÉ 2.2.4.6.1. Start ΓòÉΓòÉΓòÉ
  828.  
  829. The start window is used to display and set the start of the selected range. 
  830. When in the display mode, the start window displays the current start of the 
  831. selected range in either index or time format. 
  832.  
  833. Double clicking the mouse on the window changes it to edit mode in which the 
  834. operator may enter the exact starting position.  Note that the information 
  835. entered must be in the same format as it was displayed.  If the value is 
  836. outside the range of the samples, the value will automatically be changed to 
  837. the nearest valid value. 
  838.  
  839. Clicking on the window with the second mouse button pulls up a popup menu that 
  840. allows the user to select either Set..., Start, or Playpos. Selecting Set... is 
  841. the same as double clicking on the window which allows the field to be edited. 
  842. Selecting Start sets the start of the range to the beginning of the sample 
  843. (i.e. index 0 or time 0:0.0000). Selecting Playpos sets the start of the range 
  844. to the current play position (indicated by the PLAY window). 
  845.  
  846.  
  847. ΓòÉΓòÉΓòÉ 2.2.4.6.2. End ΓòÉΓòÉΓòÉ
  848.  
  849. The end window is used to display and set the end of the selected range.  When 
  850. in the display mode, the end window displays the current end of the selected 
  851. range in either index or time format. 
  852.  
  853. Double clicking the mouse on the window changes it to edit mode in which the 
  854. operator may enter the exact ending position.  Note that the information 
  855. entered must be in the same format as it was displayed.  If the value is 
  856. outside the range of the samples, the value will automatically be changed to 
  857. the nearest valid value. 
  858.  
  859. Clicking on the window with the second mouse button pulls up a popup menu that 
  860. allows the user to select either Set..., End, or Playpos Selecting Set... is 
  861. the same as double clicking on the window which allows the field to be edited. 
  862. Selecting End sets the end of the range to the end of the sample.  Selecting 
  863. Playpos sets the end of the range to the current play position (indicated by 
  864. the PLAY window). 
  865.  
  866.  
  867. ΓòÉΓòÉΓòÉ 2.2.4.6.3. Play ΓòÉΓòÉΓòÉ
  868.  
  869. The PLAY window is used to display and set the current play position or the 
  870. mode of operation.  When in the display mode, the current audio playback 
  871. position is displayed in either index or time format.  During playback through 
  872. the audio device, the PLAY window is updated to reflect the current position of 
  873. the playback.  Updates from the audio device occur about once every quarter of 
  874. a second to limit the overhead in displaying the position indicator in the 
  875. graphical windows. During playback, the graphical indicator for the play 
  876. position is only updated in the full display to limit system CPU requirements 
  877. as a result of updating the displays. 
  878.  
  879. Double clicking the mouse on the window changes it to edit mode in  which the 
  880. operator may enter the exact position for audio playback to start.  Note that 
  881. the information entered must be in the same format as it is displayed.  If the 
  882. value is outside the range of the samples, the value will automatically be 
  883. changed to the nearest valid value. 
  884.  
  885. Clicking on the window with the second mouse button pulls up a popup menu that 
  886. allows the user to select either Set..., Start, End, or Mode.  Selecting Set... 
  887. is the same as double clicking on the window which allows the field to be 
  888. edited.  Selecting Start sets the current playback position to the start of the 
  889. range.  Selecting End sets the current playback position to the end of the 
  890. range.  The mode item is used to select the mode of playback. 
  891.  
  892.  
  893. ΓòÉΓòÉΓòÉ 2.2.4.6.3.1. Play mode ΓòÉΓòÉΓòÉ
  894.  
  895. Selecting Mode allows the playback mode to be set to either Range or Playpos. 
  896. Setting the Play mode to Range causes playback to start at the beginning of the 
  897. selected range and automatically rewinds to that position whenever playback 
  898. stops.  Setting the Play mode to Play pos causes playback to start wherever the 
  899. current playpos marker is set and does not automatically rewind when playback 
  900. stops. 
  901.  
  902.  
  903. ΓòÉΓòÉΓòÉ 2.2.4.6.4. Zoom ΓòÉΓòÉΓòÉ
  904.  
  905. The zoom window is used to display and set the current zoom level.  When in the 
  906. display mode, the zoom window displays the current zoom level in the form of 
  907. 1/zoom.  By default the zoom level is initially set to be the minimum zoom such 
  908. that the entire sample can be displayed in the channel display.  The zoom is 
  909. unique to the other controls in that it operates in modes which affect the way 
  910. the zoom is handled when the edit window is resized. 
  911.  
  912. Double clicking the mouse on the window changes it to the edit mode in which 
  913. the operator may enter the exact zoom. Note that the information must be 
  914. entered in the same format as it is displayed.  If the value is outside the 
  915. range of valid values, the value will automatically be changed to the nearest 
  916. valid value. 
  917.  
  918. Clicking on the window with the second mouse button pulls up a popup menu that 
  919. allows the user to select either Set..., Range, Min, or Max. 
  920.  
  921. Selecting Set... is the same as double clicking on the window which allows the 
  922. field to be edited.  When the zoom level is set by editing the zoom value 
  923. directly, the set level remains fixed when the edit window is resized unless 
  924. the set zoom will result in a value which is outside the range of zoom values 
  925. for the sample. 
  926.  
  927. Selecting Range sets the zoom level to the nearest integer which will display 
  928. the entire selected range in the channel display.  When the zoom level is set 
  929. to range mode, the current zoom changes whenever the window is resized or when 
  930. a new range is selected.  The object of this mode is to maintain the current 
  931. zoom value such that the range can fit within the channel display.  Note that 
  932. even though the window will maintain the correct zoom for the entire selected 
  933. range to fit within the window, the starting position of the left side of the 
  934. channel display will not be adjusted to keep the range actually displayed in 
  935. the channel display.  This allows the current viewing area to remain unchanged 
  936. after resizing. 
  937.  
  938. Selecting Min sets the zoom level to the nearest integer which will display all 
  939. samples in the channel display.  When the zoom level is set to the min mode, 
  940. the zoom level is adjusted to ensure that all samples are displayed in the 
  941. channel display after the window is resized. 
  942.  
  943. Selecting Max sets the zoom level to 1/1 which displays each sample exactly one 
  944. screen unit wide.  This zoom level is not affected by resize operations. 
  945.  
  946.  
  947. ΓòÉΓòÉΓòÉ 2.2.4.6.5. Cursor ΓòÉΓòÉΓòÉ
  948.  
  949. The cursor window is used to display the current position of the mouse cursor 
  950. as it moves across the data windows.  The cursor window is also used to set the 
  951. beginning of the channel display.  When in the display mode, the cursor 
  952. displays the current mouse position in either index or time format. 
  953.  
  954. Double clicking the mouse on the window changes it to edit mode in which the 
  955. operator may enter the exact starting position of the channel display.  Note 
  956. that the information entered must be in the same format as it is displayed.  If 
  957. the value entered is not valid for the display zoom level, it is automatically 
  958. adjusted to the nearest valid value. 
  959.  
  960. Clicking on the window with the second mouse button pulls up a popup menu that 
  961. allows the user to select either Set..., Start, End, or Play.  Selecting Set... 
  962. is the same as double clicking on the window which allows the field to be 
  963. edited.  Selecting start sets the left edge of the channel display to the 
  964. current start of the selected range. Selecting end sets the right edge of the 
  965. channel display to the current end of the selected range. Selecting play sets 
  966. the left edge of the channel display to the current play position. 
  967.  
  968.  
  969. ΓòÉΓòÉΓòÉ 2.2.4.6.6. Footnote ΓòÉΓòÉΓòÉ
  970.  
  971. The edit window has a small window which displays a short message indicating 
  972. something about the window directly under the cursor.  One of the particular 
  973. uses of this window is to monitor which channel is currently displayed when the 
  974. editor is set to display a single channel at a time.  The footnote window is a 
  975. permanent part of the edit window and is not affected by the footnote 
  976. properties settings for the main control panel. 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 2.2.4.6.7. Progress ΓòÉΓòÉΓòÉ
  980.  
  981. Any operation which launches a thread to perform the operation will provide 
  982. feedback to the operator to indicate the percentage of work that has been 
  983. completed through the progress window.  This window is composed of a colored 
  984. bar that moves to the right as the percentage increases. The window also 
  985. displays the numeric percentage in the middle of the windows.  Every edit 
  986. window has a percentage indicator which allows each editor to provide 
  987. indicators for operations which are associated with a single sample. This 
  988. inherently implies that the toolbox can launch threads for each editor 
  989. independently and simultaneously. 
  990.  
  991. Note:  Some operations (e.g. the echo effect) launch multiple threads in series 
  992.        which cause the percentage indicator to seem to cycle. 
  993.  
  994.  This window also serves a dual purpose of providing a status indicator for the 
  995.  data in memory.  If the data has been changed and needs to be saved, this 
  996.  window will be filled with blue.  If the data has been saved or has not been 
  997.  changed, it will be empty. If an editor window is closed when the display is 
  998.  filled, the user will be warned that the data has been changed and request 
  999.  that the user either cancel the close or lose the changes. 
  1000.  
  1001.  
  1002. ΓòÉΓòÉΓòÉ 2.2.4.7. Audio ΓòÉΓòÉΓòÉ
  1003.  
  1004. The audio region of the edit window is used to control access to the AUDIO 
  1005. device.  Only one edit window can play or record audio and so all edit windows 
  1006. are linked together such that when one is active, the others are disabled.  The 
  1007. volume is the exception in that it is accessible at all times regardless of 
  1008. whether the edit window is editing or not. 
  1009.  
  1010. The following buttons are used: 
  1011.  
  1012.  Record            Starts audio recording 
  1013.  Stop              Stops audio operations 
  1014.  Play              Starts audio playback 
  1015.  Rewind            Rewinds audio position indicator 
  1016.  Volume            Sets the volume for playback 
  1017.  
  1018.  
  1019. ΓòÉΓòÉΓòÉ 2.2.4.7.1. Record ΓòÉΓòÉΓòÉ
  1020.  
  1021. The record button is used to start recording a sample.  The record button is 
  1022. disabled until the settings for the recording have been established using the 
  1023. Record Setup menu item.  After setting up the parameters, recording can start 
  1024. immediately after the record button is pressed.  During the process of 
  1025. recording, the operator may press the stop button at which point the recording 
  1026. will stop and the new data will be displayed.  If the operator does not press 
  1027. stop, the recording will continue until the set limit is reached. 
  1028.  
  1029. Since the audio device is shared between all edit windows, when one is 
  1030. recording, all buttons on the other windows are disabled. 
  1031.  
  1032.  
  1033. ΓòÉΓòÉΓòÉ 2.2.4.7.2. Stop ΓòÉΓòÉΓòÉ
  1034.  
  1035. When audio playback or recording is active, the stop button for the edit window 
  1036. which currently has access to the audio device is enabled.  This button allows 
  1037. the operator to terminate the current audio operation.  If the editor is 
  1038. playing the current sample, the play position indicator will remain at the last 
  1039. sample played.  If the play mode is currently set for playpos playback will 
  1040. continue where it left off if the play button is pressed. 
  1041.  
  1042.  
  1043. ΓòÉΓòÉΓòÉ 2.2.4.7.3. Play ΓòÉΓòÉΓòÉ
  1044.  
  1045. The play button is used to start playback of the current sample from memory. 
  1046. when this button is pressed, the start of the playback depends on the current 
  1047. mode for playback.  When in the range mode, playback will automatically start 
  1048. at the beginning of the current selected range regardless of the Play 
  1049. indicator.  When in playpos mode, playback will automatically start at the 
  1050. current position indicated by the PLAY window. 
  1051.  
  1052. There is no pause button because the playback can be set to start where it left 
  1053. off by setting the mode to playpos.  The range mode is designed for use when a 
  1054. particular area is being edited and the operator wants to play a particular 
  1055. range over a number of times without having to stop the playback with the stop 
  1056. button.  Additionally, either mode can be useful when the playback is set to 
  1057. automatically repeat repeat. 
  1058.  
  1059. The play button also serves to provide an indication as to the status of the 
  1060. audio buffers.  Whenever a sample is changed, the editor may start loading the 
  1061. audio buffers immediately depending on the setting of the Delay AUDIO Loading. 
  1062. When the task for loading the buffers is operating, the word Loading will be 
  1063. displayed at the bottom of the button and the button will be disabled.  Once 
  1064. the buffers have been loaded, the button will be enabled if the audio device is 
  1065. not in use by another edit window. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ 2.2.4.7.4. Rewind ΓòÉΓòÉΓòÉ
  1069.  
  1070. When the rewind button is pressed, the PLAY window is reset to the either the 
  1071. beginning of the selected range or to the beginning of the sample depending on 
  1072. the current mode of playback.  If the current PLAY position is already at the 
  1073. beginning of the range or sample, the rewind button is disabled. 
  1074.  
  1075.  
  1076. ΓòÉΓòÉΓòÉ 2.2.4.7.5. Volume ΓòÉΓòÉΓòÉ
  1077.  
  1078. Of the audio controls on the edit window, the volume display is the only one 
  1079. that is active at all times.  The audio display is shared across all edit 
  1080. windows simultaneously such that changes in one window are reflected in all 
  1081. open windows.  The volume control is a sliding bar which sets the volume to a 
  1082. percentage of the maximum volume for the audio card.  This volume is different 
  1083. from the volume effect in the toolbox in that it does not affect the actual 
  1084. samples; rather, it affects the audio device. 
  1085.  
  1086. The volume control is similar to a standard slider except that it does not have 
  1087. an associated button.  Rather, it is like an analog volume control such that 
  1088. the slider moves to the right and left using the mouse and the width of the 
  1089. slider indicates the volume.  Additionally, the actual percentage of the volume 
  1090. is indicated in the display for convenience. 
  1091.  
  1092. The slider may be moved using the mouse button or the normal keys associated 
  1093. with scroll bars.  By selecting the area near the edge of the sliding portion 
  1094. of the control, the slider can be captured and the mouse can be used to drag 
  1095. the volume to the desired position.  If playback is occurring, the effect is 
  1096. immediately heard.  The area to the left or right of the slider edge may also 
  1097. be selected with the first mouse button to move the slider one percent up or 
  1098. down depending on the position that is selected.  Holding the mouse down causes 
  1099. the slider to increase at a rate of about 1 percent per tenth of a second. 
  1100. Finally, the second mouse button may be used to move the slider to a specific 
  1101. position quickly. 
  1102.  
  1103.  
  1104. ΓòÉΓòÉΓòÉ 2.2.5. Menu Bar ΓòÉΓòÉΓòÉ
  1105.  
  1106. All of the functions of the editor are accessible through the menu bar.  Popup 
  1107. menus for various windows are duplicates of entries from the main menu bar.  As 
  1108. a result, menus which are checked in the popup menus are reflected in the main 
  1109. menu bar. 
  1110.  
  1111.  
  1112. ΓòÉΓòÉΓòÉ 2.2.5.1. File ΓòÉΓòÉΓòÉ
  1113.  
  1114. The File menu is used to access functions which will result in IO operations 
  1115. such as disk access, printing, or recording.  The following items are 
  1116. accessible from this menu: 
  1117.  
  1118.  New               Displays a list of open files and switches focus 
  1119.  New               Creates a new (empty) edit window 
  1120.  Open              Opens a file for editing in another edit window 
  1121.  Save              Saves the current data to disk using the current filename 
  1122.  Save As           Saves the current data to disk using a different filename 
  1123.  Print             Prints information about the sample to a printer 
  1124.  Print Setup       Sets up the format of the data to be printed 
  1125.  Record setup      Sets up parameters required to record data from the audio 
  1126.                    device 
  1127.  
  1128.  
  1129. ΓòÉΓòÉΓòÉ 2.2.5.1.1. File List ΓòÉΓòÉΓòÉ
  1130.  
  1131. From every edit window, a list open files can be found under the File List menu 
  1132. item.  Selecting any of the files in the list switches the focus to that editor 
  1133. window. This list of files performs the same functions as the list from the 
  1134. main control panel's system menu. 
  1135.  
  1136.  
  1137. ΓòÉΓòÉΓòÉ 2.2.5.1.2. New ΓòÉΓòÉΓòÉ
  1138.  
  1139. The New menu item can be used to create a new sample editing window.  This has 
  1140. the same effect as pressing the New button on the control panel. 
  1141.  
  1142.  
  1143. ΓòÉΓòÉΓòÉ 2.2.5.1.3. Open ΓòÉΓòÉΓòÉ
  1144.  
  1145. The Open menu item can be used to open an existing file for editing.  This has 
  1146. the same effect as pressing the Open button on the control panel. 
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ 2.2.5.1.4. Save ΓòÉΓòÉΓòÉ
  1150.  
  1151. Once a file has been edited, it can be saved to disk for permanent storage.  If 
  1152. the file has already been named, its name will appear in the titlebar of the 
  1153. editor and will automatically be saved as that name.  If the file has not been 
  1154. named yet, the Save As... dialog box will automatically be used to save the 
  1155. file to force the operator to name the file. 
  1156.  
  1157.  
  1158. ΓòÉΓòÉΓòÉ 2.2.5.1.5. Save As.. ΓòÉΓòÉΓòÉ
  1159.  
  1160. The following diagram illustrates the Save As... dialog. 
  1161.  
  1162. The Save As... menu item is used to save a file to a different file name than 
  1163. is displayed in the titlebar of the edit window.  The Save As... menu item can 
  1164. also be used to change the type of the file to be saved using the FORMAT field 
  1165. of the dialog. 
  1166.  
  1167. The Save As... dialog is identical to the Open dialog with the exception that 
  1168. it is associated with a particular edit window and multiple copies of the Save 
  1169. As... dialog can be displayed at the same time. 
  1170.  
  1171.  
  1172. ΓòÉΓòÉΓòÉ 2.2.5.1.6. Print ΓòÉΓòÉΓòÉ
  1173.  
  1174. Not implemented in this revision. 
  1175.  
  1176.  
  1177. ΓòÉΓòÉΓòÉ 2.2.5.1.7. Print Setup ΓòÉΓòÉΓòÉ
  1178.  
  1179. Not implemented in this revision. 
  1180.  
  1181.  
  1182. ΓòÉΓòÉΓòÉ 2.2.5.1.8. Record Setup ΓòÉΓòÉΓòÉ
  1183.  
  1184. In order to record a sample from the audio device, the parameters for the 
  1185. recording must be set up.  The following illustration shows the dialog that is 
  1186. used to set up a recording. 
  1187.  
  1188. This dialog box is used to set the recording parameters for the AUDIO group of 
  1189. EdSndX.  Changes made to this dialog are saved between sessions but it is 
  1190. necessary to open this dialog to set up the parameters for the recording for 
  1191. each individual edit window.  When the Record Options dialog is opened, EdSndX 
  1192. tests the audio adapter and only enables the features which are supported by 
  1193. the adapter. 
  1194.  
  1195. EdSndX records all audio directly to memory; consequently, the most important 
  1196. control for recording is the limit to the amount of memory in which the data is 
  1197. stored.  The limit on the memory requirements for recording audio is displayed 
  1198. and changed in three different ways.  The first is to specify the amount of 
  1199. time for recording, the second is to specify the number of samples, and the 
  1200. third is to specify the amount of memory.  Changes to each of the entry fields 
  1201. automatically updates the other fields when the focus is changed.  The limit is 
  1202. stored internally as the number of samples to be recorded.  For this reason, 
  1203. changes to the rate, quality, and channels affects the time and memory 
  1204. requirements to record the sample.  These options should be set before 
  1205. establishing the limits. 
  1206.  
  1207. Note:  The memory limit field specifies the amount of raw memory required to 
  1208.        hold the recorded data and is synonymous with the amount of data that 
  1209.        would be stored in a .WAV file. This limit should not be confused with 
  1210.        the internal memory requirements of PMsndX. After the recording has been 
  1211.        made, the data will be converted to the internal format. 
  1212.  
  1213.  The selections made in the Record Options dialog must be applied before the 
  1214.  dialog is dismissed.  Otherwise, the recording options automatically revert to 
  1215.  whatever was last applied.  When the Record Options  dialog is dismissed the 
  1216.  necessary memory is allocated and the editor is set up to prepare for 
  1217.  recording. If the Undo property box has been enabled the previous sample may 
  1218.  be restored using the Undo menu item. 
  1219.  
  1220.  Note:  The CD selection is disabled in this version.  Reading an AUDIO CD is 
  1221.         more complicated than the normal input ports. I have not figured out 
  1222.         how to make the MCI_AMP_SET_MONITOR work on my SB16.  Setting or 
  1223.         clearing Monitor Input has no effect on my system.  If it does 
  1224.         something for you, then let me know.  I know what it is suppose to do. 
  1225.  
  1226.  
  1227. ΓòÉΓòÉΓòÉ 2.2.5.2. Edit ΓòÉΓòÉΓòÉ
  1228.  
  1229. The items under the Edit menu are used to cut and paste samples using the 
  1230. clipboard and for performing functions normally necessary to prepare a sample 
  1231. for editing.  The following items are available through the Edit menu: 
  1232.  
  1233.  Undo              Undo the last operation 
  1234.  Cut               Cut the current selection to the clipboard 
  1235.  Copy              Copy the current selection to the clipboard 
  1236.  Merge             Merge data from the clipboard into the current sample 
  1237.  Merge from        Merge data from another edit window into the current sample 
  1238.  Paste             Paste data from the clipboard into the current sample 
  1239.  Paste from        Paste data from another edit window into the current sample 
  1240.  Clear clipboard   Clear the clipboard 
  1241.  Select all        Select all data in the current sample 
  1242.  Zero region       Set all data in the selected range to zero 
  1243.  Remove region     Deletes the data in the current range from the sample 
  1244.  
  1245.  
  1246. ΓòÉΓòÉΓòÉ 2.2.5.2.1. Undo ΓòÉΓòÉΓòÉ
  1247.  
  1248. If the Undo property is checked, any changes to a sample are buffered such that 
  1249. any single change can be undone.  This feature is only available when the 
  1250. program has been registered. 
  1251.  
  1252. The Undo feature maintains a buffer for exactly one change such that if the 
  1253. Undo menu is selected twice in a row, the net effect is to leave the editor 
  1254. unchanged because the second use of the Undo is essentially the same as the 
  1255. redo.  In actuality, all the Undo does is to swap the previous buffer with the 
  1256. present buffer. 
  1257.  
  1258.  
  1259. ΓòÉΓòÉΓòÉ 2.2.5.2.2. Cut ΓòÉΓòÉΓòÉ
  1260.  
  1261. Rules for cut: 
  1262.  
  1263. The CUT feature is used to cut data out of the current sample and place it on 
  1264. the clipboard.  When this operation is performed, the new data replaces any 
  1265. data that already exists on the clipboard.  The CUT operation adheres to two 
  1266. rules. 
  1267.  
  1268. 1.  If all channels are displayed, then copy all of the data over the specified 
  1269. interval and shift all data over to the left. 
  1270.  
  1271. 2.  If a single channel is displayed, then copy the data over the specified 
  1272. interval for that single channel to the clipboard, and shift the data after the 
  1273. interval over to the left while clearing the end of the data for the specified 
  1274. channel. 
  1275.  
  1276.  
  1277. ΓòÉΓòÉΓòÉ 2.2.5.2.3. Copy ΓòÉΓòÉΓòÉ
  1278.  
  1279. The Copy operation copies all of the data selected in a range to the clipboard 
  1280. in a format which is compatible with the Digital Audio Tool distributed with 
  1281. the OS/2 operating system. 
  1282.  
  1283. The copy operation copies the currently displayed range and channels to the 
  1284. clipboard so the operator must be careful to display either the correct channel 
  1285. or all channels before selecting the copy operation. 
  1286.  
  1287. Note:  When PMsndX is not registered, ranges cannot be used for the copy 
  1288.        operation. 
  1289.  
  1290.  
  1291. ΓòÉΓòÉΓòÉ 2.2.5.2.4. Merge ΓòÉΓòÉΓòÉ
  1292.  
  1293. When the MERGE button is pushed, the editor will merge the data from the 
  1294. clipboard with the data in memory. 
  1295.  
  1296. The merge operation varies depending on the number of channels in the current 
  1297. sample and the number of samples in the data on the clipboard. After the merge 
  1298. operation, the start marker will remain unchanged. 
  1299.  
  1300. 1.  If there is no current data, then just copy the clipboard directly to 
  1301. memory. 
  1302.  
  1303. 2.  If the number of merged channels is the same as the current data, then 
  1304. merge the data in based on the selected channel for manipulation. 
  1305.  
  1306. Note:  When merging, the data is averaged based on the selected channel for 
  1307.        manipulation.  Any excess difference between the length of the two will 
  1308.        be left unafffected.
  1309.  
  1310.  3.  If the number of merged channels is 1, then average the data from the 
  1311.  clipboard to the channel(s) selected for manipulation.  If the length of the 
  1312.  samples does not match the data will be averaged for the common length of the 
  1313.  two and excess will not be modified. 
  1314.  
  1315.  4.  If the number of merged channels is less than the current number of 
  1316.  channels (but greater than 1), then 
  1317.  
  1318.  a) average the data from the clipboard directly into the current sample and 
  1319.  leave the non-existent channels unaffected. 
  1320.  
  1321.  b) average the first channel from the clipboard with the selected channel for 
  1322.  manipulation. 
  1323.  
  1324.  5.  If the merged sample has more channels than the current sample, then 
  1325.  
  1326.  a) average the existing channels and copy the clipboard data directly to the 
  1327.  channels that did not exist in memory. 
  1328.  
  1329.  b) the first channel is merged into the selected channel for manipulation. 
  1330.  
  1331.  6.  If all of this fails, then just warn the user and give up. 
  1332.  
  1333.  
  1334. ΓòÉΓòÉΓòÉ 2.2.5.2.5. Merge From ΓòÉΓòÉΓòÉ
  1335.  
  1336. When more than one edit window is open, EdSndX provides the capability to merge 
  1337. data from one editor to another without going through the clipboard.  The Merge 
  1338. From menu item is only activated when more than one edit window is open and the 
  1339. submenu is filled with the filenames of the other edit windows in the same 
  1340. format as that used in the File List accessed from the main menu. 
  1341.  
  1342. When merging from another edit window, the same rules apply as do for the 
  1343. clipboard merge operations as if the range selected were copied to the 
  1344. clipboard.  The advantage of merging between edit windows without using the 
  1345. clipboard is that it is faster and does not require the creation of temporary 
  1346. buffers. 
  1347.  
  1348. Note:  If PMsndX is not registered, the merge from function does not recognize 
  1349.        the range selected and will always copy all samples and channels as if 
  1350.        the enter sample were copied to the clipboard. 
  1351.  
  1352.  
  1353. ΓòÉΓòÉΓòÉ 2.2.5.2.6. Paste ΓòÉΓòÉΓòÉ
  1354.  
  1355. Rules for paste: 
  1356.  
  1357. The PASTE button is used the paste the contents of the clipboard into memory. 
  1358.  
  1359. The paste operation varies depending on the number of channels in the current 
  1360. sample and the number of samples in the data on the clipboard. After the paste 
  1361. operation, the start marker will be set at the beginning of the sample pasted 
  1362. from the clipboard and the end marker will be set to the end of the new data. 
  1363.  
  1364. 1.  If there is no current data, then just copy the clipboard directly to 
  1365. memory. 
  1366.  
  1367. 2.  If the number of pasted channels is the same as the current data, then past 
  1368. the data in based on the selected channel for manipulation. 
  1369.  
  1370. 3.  If the number of pasted channels is 1, then just copy the data to the 
  1371. channel(s) selected for manipulation and insert blank space for the 
  1372. corresponding channels which are not being manipulated.  If the number of 
  1373. channels for manipulation is "ALL" then duplicate the data for the single 
  1374. channel across all channels of the current data. 
  1375.  
  1376. 4.  If the number of pasted channels is less than the current number of 
  1377. channels (but greater than 1), then 
  1378.  
  1379. a) if the channels selected for manipulation is set to "ALL" then copy the 
  1380. channels from the clipboard directly into the current sample and zero out the 
  1381. non-existent channels. 
  1382.  
  1383. b) copy the first channel from the pasted sample into the selected channel for 
  1384. manipulation. 
  1385.  
  1386. 5.  If the pasted sample has more channels than the current sample, then 
  1387.  
  1388. a) if the channels selected for manipulation is set to "ALL" then create the 
  1389. new channels in the existing data and set all non-existent channels in the 
  1390. existing data to zero. 
  1391.  
  1392. b) copy the first channel from the pasted sample into the selected channel for 
  1393. manipulation. 
  1394.  
  1395. 6.  If all of this fails, then just warn the user and give up. 
  1396.  
  1397.  
  1398. ΓòÉΓòÉΓòÉ 2.2.5.2.7. Paste From ΓòÉΓòÉΓòÉ
  1399.  
  1400. When more than one edit window is open, EdSndX provides the capability to paste 
  1401. data from one editor to another without going through the clipboard.  The Paste 
  1402. From menu item is only activated when more than one edit window is open and the 
  1403. submenu is filled with the filenames of the other edit windows in the same 
  1404. format as that used in the File List accessed from the main menu. 
  1405.  
  1406. When pasting from another edit window, the same rules apply as do for the 
  1407. clipboard paste operations as if the range that is currently selected were 
  1408. copied to the clipboard. The advantage of pasting between edit windows without 
  1409. using the clipboard is that it is faster and does not require the creation of 
  1410. temporary buffers. 
  1411.  
  1412. Note:  If PMsndX is not registered, the paste from function does not recognize 
  1413.        the range selected and will always copy all samples and channels as if 
  1414.        the enter sample were copied to the clipboard. 
  1415.  
  1416.  
  1417. ΓòÉΓòÉΓòÉ 2.2.5.2.8. Clear Clipboard ΓòÉΓòÉΓòÉ
  1418.  
  1419. The Clear Clipboard function is provided to reduce the memory requirements 
  1420. during the process of editing.  When data is copied to the clipboard, it is 
  1421. allocated by an application and then passed to the clipboard system of OS/2. 
  1422. As long as the data remains on the clipboard, the memory is reserved and 
  1423. unusable to other applications.  Freeing this memory reduces the impact on the 
  1424. overall memory resources for the system. 
  1425.  
  1426. Rules for Clear operation: 
  1427.  
  1428. This operation clears all data from the clipboard.  It has no effect on data 
  1429. currently in memory. 
  1430.  
  1431.  
  1432. ΓòÉΓòÉΓòÉ 2.2.5.2.9. Select All ΓòÉΓòÉΓòÉ
  1433.  
  1434. Use this menu item to select the entire sample such that the start of the range 
  1435. of selection is set to 0 and the end of the range is set to the end of the 
  1436. sample. 
  1437.  
  1438.  
  1439. ΓòÉΓòÉΓòÉ 2.2.5.2.10. Zero Region ΓòÉΓòÉΓòÉ
  1440.  
  1441. Rules for Zero operation: 
  1442.  
  1443. Set the data over the specified interval to 0 for the channels specified. 
  1444.  
  1445.  
  1446. ΓòÉΓòÉΓòÉ 2.2.5.2.11. Remove Region ΓòÉΓòÉΓòÉ
  1447.  
  1448. Rules for Remove operation: 
  1449.  
  1450. 1.  If all channels are displayed, then remove the data over the specified 
  1451. range for all channels and shift all data to the left. 
  1452.  
  1453. 2.  If a single channel is displayed, then remove the data for that channel 
  1454. over the specified range and shift the end of that channel to the left while 
  1455. zeroing out the end of the channel. 
  1456.  
  1457.  
  1458. ΓòÉΓòÉΓòÉ 2.2.5.3. Options ΓòÉΓòÉΓòÉ
  1459.  
  1460. The editor window utilizes a set of options that are specific to the window and 
  1461. which are stored between sessions.  These settings are shared between editor 
  1462. windows such that changes in one window affect all other windows. These options 
  1463. are also accessible through the editor properties page of the properties box. 
  1464.  
  1465. The following menu items are available under this menu. 
  1466.  
  1467.  Display Info      Toggles the information display in the edit window 
  1468.  All channels      Toggles the display of one or all channels 
  1469.  Delay AUDIO loading Toggles the automatic loading of the audio buffers 
  1470.  Load AUDIO at playback Toggles the automatic loading of the audio buffers when 
  1471.                    the play button is pressed 
  1472.  Load AUDIO Data Now Forces audio data to be loaded immediately 
  1473.  Auto repeat       Toggles audio playback repeat 
  1474.  Format            Toggles the method for displaying sample indexes 
  1475.  Fast Full display Toggles the use of the fast routines for the full display 
  1476.  Fast Channel display Toggles the use of the fast routines for the channel 
  1477.                    display 
  1478.  
  1479.  
  1480. ΓòÉΓòÉΓòÉ 2.2.5.3.1. Display Info ΓòÉΓòÉΓòÉ
  1481.  
  1482. The information display at the top of the edit window is optional.  By default, 
  1483. the information display is present on all edit windows but may be toggled by 
  1484. selecting this menu item.  When this display is not present, the graphical 
  1485. displays are automatically expanded to fill the space. 
  1486.  
  1487.  
  1488. ΓòÉΓòÉΓòÉ 2.2.5.3.2. All Channels ΓòÉΓòÉΓòÉ
  1489.  
  1490. The individual channel display can be set to either display all channels at 
  1491. once or a single channel at a time.  When all channels are displayed, all 
  1492. channels of a sample share the same space that would normally be used to 
  1493. display a single channel. 
  1494.  
  1495. By default, all channels are displayed for a sample unless the check is cleared 
  1496. by toggling this menu item. 
  1497.  
  1498.  
  1499. ΓòÉΓòÉΓòÉ 2.2.5.3.3. Delay Audio Loading ΓòÉΓòÉΓòÉ
  1500.  
  1501. One of the problems with sound samples is that they take up a large amount of 
  1502. memory.  This is compounded by the way that EdSndX maintains a sample as 16 bit 
  1503. data regardless of the type of data required to store the samples.  In order to 
  1504. play samples through the audio, the edit window can automatically load the 
  1505. necessary buffers for audio playback. 
  1506.  
  1507. By default, each editor reloads the buffers whenever the sample is changed. 
  1508. This not only takes up extra CPU resources, but it can add to the memory 
  1509. requirements of the program.  If memory is tight and the swap file is being 
  1510. used, toggle this menu item to prevent taking up the memory to buffer for the 
  1511. audio device.  When this is selected, the Load Audio at Playback item is 
  1512. enabled.  Use the Load Audio Data Now menu item to load the audio buffers when 
  1513. ready to play data. 
  1514.  
  1515. This option has been provided to allow the operator to weigh the effects of 
  1516. maintaining audio buffers.  If the buffers are not automatically loaded, then 
  1517. there will be a delay whenever audio playback is requested as the buffers are 
  1518. loaded.  If the buffers are automatically loaded, then the extra memory 
  1519. requirements must be tolerated. 
  1520.  
  1521.  
  1522. ΓòÉΓòÉΓòÉ 2.2.5.3.4. Load Audio At Playback ΓòÉΓòÉΓòÉ
  1523.  
  1524. This menu item is only enabled when Delay Audio Loading has been selected. 
  1525. When this feature is enabled, the play button is enabled but the buffers are 
  1526. not loaded when samples are changed; however, the audio buffers are 
  1527. automatically loaded when the playback button is pressed.  When this feature is 
  1528. disabled, the playback button will not be enabled until the Load Audio Data Now 
  1529. has been selected to force the buffers to be loaded. 
  1530.  
  1531.  
  1532. ΓòÉΓòÉΓòÉ 2.2.5.3.5. Load Audio Data Now ΓòÉΓòÉΓòÉ
  1533.  
  1534. This menu item is always enabled to allow the operator to force EdSndX to 
  1535. reload the audio buffers at any time. Normally, EdSndX will reload the buffers 
  1536. whenever the sample is changed; however, when Delay Audio Loading has been 
  1537. enabled, the operator will need to select this menu item to load the buffers 
  1538. for playback unless Load Audio at Playback has been enabled. 
  1539.  
  1540.  
  1541. ΓòÉΓòÉΓòÉ 2.2.5.3.6. Auto Repeat ΓòÉΓòÉΓòÉ
  1542.  
  1543. This menu item is used to toggle the ability of the editor to automatically 
  1544. rewind the playback and restart whenever the audio playback reaches the end of 
  1545. the sample.  By default, this feature is disabled. 
  1546.  
  1547.  
  1548. ΓòÉΓòÉΓòÉ 2.2.5.3.7. Format ΓòÉΓòÉΓòÉ
  1549.  
  1550. EdSndX has the capability to display index references in the form of either a 
  1551. sample index or as a time index.  This menu item has two submenu items for each 
  1552. display method.  When the time format is used, all index references are 
  1553. displayed in the form of MM:SS.HHHH and all data entered by the user when 
  1554. editing index fields is expected to be entered in this format.  When in sample 
  1555. index mode, the index is displayed as an integer which represents the physical 
  1556. sample offset within a channel. 
  1557.  
  1558. The default for this feature is to display all indexes in the time format. 
  1559.  
  1560.  
  1561. ΓòÉΓòÉΓòÉ 2.2.5.3.8. Fast Full display ΓòÉΓòÉΓòÉ
  1562.  
  1563. This menu item is used to toggle the use of the fast routines for displaying 
  1564. the graphical data in the full display area of the editor.  By default, this 
  1565. feature is enabled. When in this mode, the mouse can be used to drag either the 
  1566. start or end of the marked area using BUTTON 1. 
  1567.  
  1568.  
  1569. ΓòÉΓòÉΓòÉ 2.2.5.3.9. Fast Channel display ΓòÉΓòÉΓòÉ
  1570.  
  1571. This menu item is used to toggle the use of the fast routines for displaying 
  1572. the graphical data in the channel display area of the editor.  By default, this 
  1573. feature is enabled. When in this mode, the mouse can be used to drag either the 
  1574. start or end of the marked area using BUTTON 1. 
  1575.  
  1576.  
  1577. ΓòÉΓòÉΓòÉ 2.2.5.4. Display ΓòÉΓòÉΓòÉ
  1578.  
  1579. This menu provides access to management of the display to let the operator move 
  1580. the displays using different references and to control the zoom level of the 
  1581. display. 
  1582.  
  1583. The following menu items are available for the display. 
  1584.  
  1585.  Goto              Sets the start/end of the displays 
  1586.  Zoom              Sets the method for zooming in on data 
  1587.  Redraw            Forces the entire edit window and all fields to be redrawn 
  1588.  
  1589.  
  1590. ΓòÉΓòÉΓòÉ 2.2.5.4.1. Goto ΓòÉΓòÉΓòÉ
  1591.  
  1592. The Goto submenu allows the operator to select the starting point of the 
  1593. individual channel display. This has the same effect as moving the display 
  1594. position slider bar with the mouse and is subject to the same limitations as 
  1595. the display position bar however, this submenu provides quick access to 
  1596. frequently used positions. 
  1597.  
  1598. See cursor region for a description of the popup menu which is identical in 
  1599. function to this submenu. 
  1600.  
  1601.  
  1602. ΓòÉΓòÉΓòÉ 2.2.5.4.2. Zoom ΓòÉΓòÉΓòÉ
  1603.  
  1604. The Zoom menu is used to manipulate the method for zooming in on the data.  The 
  1605. method for zooming in on a sample affects the way the edit window reacts to 
  1606. resizing. 
  1607.  
  1608. See zoom region for a description of the popup menu which is identical in 
  1609. function to this submenu. 
  1610.  
  1611.  
  1612. ΓòÉΓòÉΓòÉ 2.2.5.4.3. Redraw ΓòÉΓòÉΓòÉ
  1613.  
  1614. In the event that the operator feels that the edit display is out of sync, the 
  1615. Redraw menu item can be used to force the editor to update all displays. 
  1616.  
  1617.  
  1618. ΓòÉΓòÉΓòÉ 2.2.5.5. Markers ΓòÉΓòÉΓòÉ
  1619.  
  1620. Markers are used as indicators of important positions in a sample.  These 
  1621. markers can be simply used for information to the operator or to allow the 
  1622. operator to provide key positions which are used to manipulate the sample. 
  1623.  
  1624. The following marker menu items are provided in this menu. 
  1625.  
  1626.  Start             Sets the starting point for range selection 
  1627.  End               Sets the ending point for range selection 
  1628.  Play              Sets the current playback position 
  1629.  
  1630.  
  1631. ΓòÉΓòÉΓòÉ 2.2.5.5.1. Start ΓòÉΓòÉΓòÉ
  1632.  
  1633. The Start submenu is used to select the start of the selection range.  See 
  1634. start region for a description of the popup menu which is identical in function 
  1635. to this submenu. 
  1636.  
  1637.  
  1638. ΓòÉΓòÉΓòÉ 2.2.5.5.2. End ΓòÉΓòÉΓòÉ
  1639.  
  1640. The End submenu is used to select the end of the selection range.  See end 
  1641. region for a description of the popup menu which is identical in function to 
  1642. this submenu. 
  1643.  
  1644.  
  1645. ΓòÉΓòÉΓòÉ 2.2.5.5.3. Play ΓòÉΓòÉΓòÉ
  1646.  
  1647. The Play submenu is used to select the current position of audio playback.  See 
  1648. play mode for a description of the popup menu which is identical in function to 
  1649. this submenu. 
  1650.  
  1651.  
  1652. ΓòÉΓòÉΓòÉ 2.2.5.6. Tools ΓòÉΓòÉΓòÉ
  1653.  
  1654. The DSP tools have been disassociated from individual samples and edit windows 
  1655. by providing the DSP tools in the form of a toolbox. In order to utilize the 
  1656. DSP tools, the edit window provides a menu which allows the user to temporarily 
  1657. associate the toolbox with an edit window. 
  1658.  
  1659. The tools menu provides the following special items. 
  1660.  
  1661.  Abort             Aborts the current DSP tool 
  1662.  Switch to         Opens the toolbox and associates the current edit window 
  1663.                    with the toolbox 
  1664.  
  1665.  Other items are available which correspond to the pages of the toolbox and can 
  1666.  be used to automatically switch to a page and associate the toolbox with the 
  1667.  edit window in one step. 
  1668.  
  1669.  
  1670. ΓòÉΓòÉΓòÉ 2.2.5.6.1. Abort ΓòÉΓòÉΓòÉ
  1671.  
  1672. The operation of the toolbox is to become temporarily associated with the 
  1673. editor window such that a tool can be setup and then launched.  Upon starting 
  1674. the task to perform a DSP tool, the toolbox automatically disassociates itself 
  1675. from the edit window.  As a result, the edit window maintains ownership of the 
  1676. task which is performing the DSP function and has to have a means to abort the 
  1677. operation. At any time before the progress indicator on the edit window reaches 
  1678. 99%, the Abort button is enabled and will allow the operator to terminate the 
  1679. current DSP thread for that editor.  When a DSP thread is not running, the 
  1680. Abort menu item is disabled. 
  1681.  
  1682.  
  1683. ΓòÉΓòÉΓòÉ 2.2.5.6.2. Switch To ΓòÉΓòÉΓòÉ
  1684.  
  1685. As indicated, the toolbox is disassociated from the edit samples and edit 
  1686. windows.  In order to use the toolbox, it must be temporarily associated with a 
  1687. editor.  This is done by either using the switch to menu item or by selecting 
  1688. the specific DSP tool to be used. 
  1689.  
  1690. Regardless of the method, the toolbox displays the name of the sample that it 
  1691. is currently associated with in the titlebar of the toolbox.  When the switch 
  1692. to menu item is selected, the toolbox is then changed over to the editor from 
  1693. which the command came from.  In this manner, the toolbox can float between 
  1694. each of the samples or be dismissed while the DSP operations are occurring. 
  1695.  
  1696. If the toolbox is not displayed at the time that the association is requested, 
  1697. EdSndX will automatically display the toolbox. 
  1698.  
  1699.  
  1700. ΓòÉΓòÉΓòÉ 2.3. Tools ΓòÉΓòÉΓòÉ
  1701.  
  1702. Using a notebook to display the TOOLS has some unique presentation advantages. 
  1703. Primarily the notebook allows the effects to be displayed in a single dialog 
  1704. window.  Since each effect is mutually exclusive of any other tool this 
  1705. approach displays the maximum information that the user can utilize at any 
  1706. time.  Another approach would have been to develop a dialog box for each tool. 
  1707. This approach has the disadvantage that it would require a second control panel 
  1708. to select the specific tools.  This would violate the approach of providing a 
  1709. single control panel for the user and would necessitate managing a number of 
  1710. different windows which could potentially clutter the screen.  The notebook is 
  1711. a clean and aesthetically pleasing means for managing the tools. 
  1712.  
  1713. The heart of manipulating the samples is accessed from the TOOLS notebook. 
  1714. Some of the pages of the notebook provide information while others let the user 
  1715. apply a particular effect on the current sound sample.  The TOOLS notebook can 
  1716. be dismissed by pressing the TOOLS button on the main control panel or by 
  1717. pulling down the system menu for the toolbox and selecting CLOSE. 
  1718.  
  1719. The notebook is divided into sections such that functions with similar 
  1720. operations are grouped together.  The tabs on the right of the notebook access 
  1721. the section and the tabs at the bottom of the page are used to access the 
  1722. individual functions of the grouping. The tabs on the notebook provide access 
  1723. to the Info, Type, Average, Duplicate, Band Pass, Low Pass, Rate, Speed, 
  1724. Playback speed, Echo, Invert, Reverse, Vibro, Limit, Fade, and Balance 
  1725. functions for manipulating the samples. 
  1726.  
  1727. The notebook may be navigated by either selecting the tab on the right of the 
  1728. book for the desired function or by using the small Plus and Minus buttons at 
  1729. the bottom of the notebook.  Using the Plus and Minus buttons will move through 
  1730. the notebook a single page at a time. 
  1731.  
  1732. To select the tabs using the keyboard, the focus for the notebook must be set 
  1733. for the notebook container (by clicking the mouse outside of one of the tools 
  1734. or by pressing the ALT key and the UP arrow). Selecting any character that is 
  1735. underlined will bring that page to the top of the display. 
  1736.  
  1737. The notebook can be displayed regardless of the presence of sample data in 
  1738. memory.  When no sample is present, the pages of the notebook will be 
  1739. invalidated but can still be viewed. 
  1740.  
  1741.  
  1742. ΓòÉΓòÉΓòÉ 2.3.1. Info ΓòÉΓòÉΓòÉ
  1743.  
  1744. The Info page displays all of the relevant information about the samples 
  1745. currently in memory.  This includes the following categories: 
  1746.  
  1747.  Load Format     One of the formats which the program can save or open 
  1748.  Data Type       The default extension for this file format. 
  1749.  Data Style      SIGNED, UNSIGNED, ULAW, or ALAW 
  1750.  Channels        Number of channels in the sample 
  1751.  Sampling Rate   The number of samples taken each second 
  1752.  Data Size       BYTE (8 bits), WORD (16 bits), LONG (32 bits) 
  1753.  Samples         The number of samples that make up each channel 
  1754.  Comments        Some sample files may contain comments.  Any comments found 
  1755.                  are displayed in this window 
  1756.  Byte Order      The natural order of the bytes in each sample.  This field can 
  1757.                  display either Big Endian or Little Endian 
  1758.  
  1759.  
  1760. ΓòÉΓòÉΓòÉ 2.3.2. Type ΓòÉΓòÉΓòÉ
  1761.  
  1762. The type of the file is determined by the header written to the beginning of 
  1763. the file.  See Save for information how the file type is determined when a file 
  1764. is saved to disk.  Additionally, the user may use the this tool to change the 
  1765. Load Format (displayed in the Info page of the tools notebook).  When the file 
  1766. is saved, the default file format will automatically be set to whatever has 
  1767. been chosen on this page of the notebook.  Changing the file name extension or 
  1768. selecting a file format in the SAVE dialog will override this setting. 
  1769.  
  1770. Each file format utilizes different headers for the actual data.  By selecting 
  1771. one of the standard formats on this page the Info page will show the user how 
  1772. the samples will be saved.  The fields that are most likely to change are the 
  1773. Load Format, Data Type, Data Style, and Data Size. 
  1774.  
  1775.  
  1776. ΓòÉΓòÉΓòÉ 2.3.3. Average ΓòÉΓòÉΓòÉ
  1777.  
  1778. This tool is useful for reducing the number of channels in a sample by either 
  1779. eliminating channels or by averaging the sounds together.  A sample with an 
  1780. even number of channels may be averaged to produce a sample with half the 
  1781. initial number of channels. For example, a sample with four channels can be 
  1782. averaged to produce a sample with two channels and a sample with two samples 
  1783. can be averaged to produce a sample with one channel. 
  1784.  
  1785. Channels may be averaged in three ways.  The simplest is to take the left or 
  1786. right channel data as the final data.  A more complex method is to average the 
  1787. samples of the left and right to produce a center sample. The results of these 
  1788. operations are significantly different and can result in very different output 
  1789. samples. 
  1790.  
  1791. When a sample contains four channels, it is composed of four sound sources at 
  1792. 45 degrees in each quadrant.  This corresponds to the Front Left, Front Right, 
  1793. Rear Left, or Rear Right.  To average these into two channels the user can 
  1794. select to use any of the four channels or to average based on the left or 
  1795. right. To select or average any combination of the channels into either of the 
  1796. output channels, check the box for the channels from the source sample.  To aid 
  1797. in this, two radio buttons have been provided which enable or disable the 
  1798. selection of check boxes in the second channel depending on the number of 
  1799. output channels selected. 
  1800.  
  1801.  
  1802. ΓòÉΓòÉΓòÉ 2.3.4. Dupe ΓòÉΓòÉΓòÉ
  1803.  
  1804.  This tool is useful to add channels to a sample through simple duplication. 
  1805. When this tool is used, the new channels created are exact duplicates of the 
  1806. original samples. Channels can be duplicated such that a single channel sample 
  1807. can be made to have two channels which are identical or two channels can be 
  1808. duplicated to form four channels. 
  1809.  
  1810. When copying two channels to 4, PMsndX allows the user to specify which of the 
  1811. input channels will be placed on the output channels.  In this way, a single 
  1812. channel of a dual channel sample can be copied to any of the four output 
  1813. channels. 
  1814.  
  1815.  
  1816. ΓòÉΓòÉΓòÉ 2.3.5. Low Pass ΓòÉΓòÉΓòÉ
  1817.  
  1818. A Low Pass filter can be applied to a sample to eliminate high frequencies. 
  1819. With a bandpass filter, it is not possible to eliminate any effect on lower 
  1820. frequencies; however, a lowpass is designed specifically to eliminate changes 
  1821. on frequencies below the right dropoff.  A lowpass filter is normally used to 
  1822. eliminate high frequency hiss. Frequencies near the edge of the filter will be 
  1823. attenuated by the natural change in the frequency response of the filter and 
  1824. the ringing that occurs at the edge of the drop. The lowpass filter also 
  1825. increases the volume of the sample and a attenuation (gain) factor is provided 
  1826. to allow the user to limit the effect.  Depending on the volume of the initial 
  1827. sample, the attenuation may be less important but should be experimented with 
  1828. to find a good compromise. 
  1829.  
  1830. Filtering is accomplished in the digital domain through the use of a very 
  1831. simple second order digital Fourier transform.  Future implementation may have 
  1832. a more complex Fourier transform; however, the chosen function is desirable 
  1833. because it provides a smooth dropoff without significant ringing. The 
  1834. performance of the filter is determined by the cutoff frequency and the rate of 
  1835. drop.  If the dropoff is made too quickly, the filter will exhibit a ringing 
  1836. effect at the begin and end of the dropoff.  If the dropoff is performed too 
  1837. slowly, the filter will suppress more frequencies toward the end of the desired 
  1838. range.  The more orders of the filter (more stages), the better the frequency 
  1839. response; however, more orders increase the time for filtering significantly. A 
  1840. two order filter works adequately. 
  1841.  
  1842. When performing the digital convolution of the sample with the step function a 
  1843. Gain factor is used to normalize the output data.  This acts as a Volume 
  1844. control for the sample to prevent losses due to numerical overflow.  Values for 
  1845. the gain range from 0 to 1 in increments of 0.01.  A slider bar is used to set 
  1846. the gain of the low pass filter.  When the low pass filter is first brought up, 
  1847. the Gain will default to a value of 0.8.  If this is changed, it will remain at 
  1848. the new setting until the session is terminated. 
  1849.  
  1850. The Frequency response of the low pass filter is determined by a the 
  1851. centerpoint of the dropoff at the end of the step function.  When performing a 
  1852. digital filter, it is not possible to prevent the gradual drop at the end of 
  1853. the step function due to the convolution of the samples used in the 
  1854. transformation.  This is true for analog components also. The centerpoint of 
  1855. the dropoff can be set in three ways. The user may enter the specific frequency 
  1856. in the text entry box in the lower right corner or may use the filter display 
  1857. like a sliding bar.  As is typical of a sliding bar, the mouse may be used to 
  1858. capture the cutoff frequency by pressing the mouse button while the mouse is 
  1859. near the cutoff frequency.  By holding the button down, the user may drag the 
  1860. frequency to the desired range.  Additionally, the user may click to the right 
  1861. or the left of the frequency cutoff to increase or decrease the frequency by 
  1862. 1000 Hz. The right and left arrows in the corners of the display may be used to 
  1863. increase or decrease the frequency by 1 Hz. The plus and minus buttons in the 
  1864. corners of the display may be used to increase or decrease the frequency by 10 
  1865. Hz. The frequency response curve illustrates the dropoff that occurs at the end 
  1866. of the step function. 
  1867.  
  1868.  
  1869. ΓòÉΓòÉΓòÉ 2.3.6. High Pass ΓòÉΓòÉΓòÉ
  1870.  
  1871. A High Pass filter can be applied to a sample to eliminate low frequencies. 
  1872. With a bandpass filter, it is not possible to eliminate any effect on higher 
  1873. frequencies; however, a highpass is designed specifically to eliminate changes 
  1874. on frequencies above the right dropoff.  A highpass filter is normally used to 
  1875. eliminate low frequency hum. Frequencies near the edge of the filter will be 
  1876. attenuated by the natural change in the frequency response of the filter and 
  1877. the ringing that occurs at the edge of the drop. The highpass filter also 
  1878. increases the volume of the sample and a attenuation (gain) factor is provided 
  1879. to allow the user to limit the effect.  Depending on the volume of the initial 
  1880. sample, the attenuation may be less important but should be experimented with 
  1881. to find a good compromise. 
  1882.  
  1883. Filtering is accomplished in the digital domain through the use of a very 
  1884. simple second order digital Fourier transform.  Future implementation may have 
  1885. a more complex Fourier transform; however, the chosen function is desirable 
  1886. because it provides a smooth dropoff without significant ringing. The 
  1887. performance of the filter is determined by the cutoff frequency and the rate of 
  1888. drop.  If the dropoff is made too quickly, the filter will exhibit a ringing 
  1889. effect at the begin and end of the dropoff.  If the dropoff is performed too 
  1890. slowly, the filter will suppress more frequencies toward the end of the desired 
  1891. range.  The more orders of the filter (more stages), the better the frequency 
  1892. response; however, more orders increase the time for filtering significantly. A 
  1893. two order filter works adequately. 
  1894.  
  1895. When performing the digital convolution of the sample with the step function a 
  1896. Gain factor is used to normalize the output data.  This acts as a Volume 
  1897. control for the sample to prevent losses due to numerical overflow.  Values for 
  1898. the gain range from 0 to 1 in increments of 0.01.  A slider bar is used to set 
  1899. the gain of the low pass filter.  When the high pass filter is first brought 
  1900. up, the Gain will default to a value of 0.8.  If this is changed, it will 
  1901. remain at the new setting until the session is terminated. 
  1902.  
  1903. The Frequency response of the high pass filter is determined by a the 
  1904. centerpoint of the dropoff at the end of the step function.  When performing a 
  1905. digital filter, it is not possible to prevent the gradual drop at the end of 
  1906. the step function due to the convolution of the samples used in the 
  1907. transformation.  This is true for analog components also. The centerpoint of 
  1908. the dropoff can be set in three ways. The user may enter the specific frequency 
  1909. in the text entry box in the lower right corner or may use the filter display 
  1910. like a sliding bar.  As is typical of a sliding bar, the mouse may be used to 
  1911. capture the cutoff frequency by pressing the mouse button while the mouse is 
  1912. near the cutoff frequency.  By holding the button down, the user may drag the 
  1913. frequency to the desired range.  Additionally, the user may click to the right 
  1914. or the left of the frequency cutoff to increase or decrease the frequency by 
  1915. 1000 Hz. The right and left arrows in the corners of the display may be used to 
  1916. increase or decrease the frequency by 1 Hz. The plus and minus buttons in the 
  1917. corners of the display may be used to increase or decrease the frequency by 10 
  1918. Hz. The frequency response curve illustrates the dropoff that occurs at the end 
  1919. of the step function. 
  1920.  
  1921.  
  1922. ΓòÉΓòÉΓòÉ 2.3.7. Band Pass ΓòÉΓòÉΓòÉ
  1923.  
  1924. This tool provides the ability to apply a band-pass filter to a sample. A 
  1925. band-pass filter is used to eliminate unwanted frequencies from a sample.  This 
  1926. is often to eliminate high frequency hiss and low frequency hum from a sample. 
  1927. The typical range of frequencies that affect the human ear are from about 100 
  1928. Hz through about 16 kHz.  Like the equalizer on a stereo, the bandpass filter 
  1929. can be used to reduce the effect of unwanted frequencies.  Although we 
  1930. generally think of a bandpass filter as operating like a perfect step function, 
  1931. it has ringing at the edges of the transitions and will affect the frequencies 
  1932. near the edges of the filter. 
  1933.  
  1934. The frequency response for the filter is designed to drop logarithmically 
  1935. around a center frequency.  The slope of the drop at the desired start (Wp) and 
  1936. end (Ws) of the filter varies with the distance between the Wp and Ws.  This 
  1937. width is used to determine the slope of the dropoff at the edges of the filter. 
  1938. The frequencies at Wp and Ws will be approximately half of their original 
  1939. amplitudes and all frequencies outside of the Center - Wp and the Center + Ws 
  1940. will be eliminated.  The bandpass filter can be mode oriented to pitched 
  1941. signals (i.e. voice, singing, or instrumental music) or can be modified by 
  1942. adding noise to the filter so that un-pitched signals can be effectively 
  1943. processed. 
  1944.  
  1945. Note:  To aid the user in locating the maximum effective center frequency, a 
  1946.        light blue vertical bar is placed at half the sampling rate for the 
  1947.        data. 
  1948.  
  1949.   The transformation for the Bandpass filter was derived from a a program 
  1950.  called MUSIC56K (as documented in the MUSIC56K source code) and implemented in 
  1951.  C++ for this program. 
  1952.  
  1953.  Operation of the bandpass filter tool is probably one of the most complex 
  1954.  interfaces in the toolbox.  It is based on a simple principle.  The entire 
  1955.  display of the filter represents the frequency response of the filter and is 
  1956.  operated like a slider.  However, since the Start frequency and the Stop 
  1957.  frequency are independent, the sliding bar is divided into identical controls 
  1958.  for each filter edge. Before getting into the operation of the controls the 
  1959.  display needs to be explained to establish the terms that will be used. 
  1960.  
  1961.  As mentioned, the display is designed to illustrate the frequency response of 
  1962.  the bandpass filter (independent of any added noise).  The center of the Start 
  1963.  (Wp) and End (Ws) of the filter are marked by vertical BLUE bars.  The Center 
  1964.  (Wc) of the filter is marked by a vertical RED bar.  These three markers 
  1965.  provide the means for the user to modify the filter.  The region to the left 
  1966.  of the RED center frequency is always the start of the filter.  The user may 
  1967.  click the mouse to the left of Wp to decrease Wp by 1000 Hz.  Clicking between 
  1968.  Wp and Wc increases Wp by 1000 Hz.  Likewise, clicking between Wc and Ws 
  1969.  decreases Ws by 1000 Hz and clicking to the right of Ws increases Ws by 1000 
  1970.  Hz.  The user may also click the mouse near Ws or Wp to drag the respective 
  1971.  ends of the filter quickly. 
  1972.  
  1973.  To provide fine control of the filter, Right and Left arrows are provided for 
  1974.  both Wp and Ws.  Clicking on either the right or left arrow will increase the 
  1975.  indicated filter edge by 1 Hz.  To increase or decrease the filter edges by 10 
  1976.  Hz, the user may select the plus or minus corresponding to the filter edges. 
  1977.  The left set of controls affects Wp and the right set of controls affects Ws. 
  1978.  
  1979.  As the mouse is used to adjust Wp and Ws, the exact frequencies for Wp, Ws, 
  1980.  Wc, and the filter Width are updated in the text input fields.  The user can 
  1981.  use the mouse to select one of the input fields and modify it directly.  To 
  1982.  accept a value in the entry field and recalculated the dependent frequencies 
  1983.  select another window or click on another item which moves the focus from the 
  1984.  notebook.  The rules for the fields are as follows: 
  1985.  
  1986.    1. If the Center frequency is modified, new values for Wp and Ws are 
  1987.       immediately calculated using the current Width. If Wp or Ws are outside 
  1988.       of the possible ranges, then Wp or Ws are set to the limit of the 
  1989.       acceptable range and the Width and Center are recalculated. 
  1990.    2. If the Width of the filter is modified, new values for Wp and Ws are 
  1991.       immediately calculated using the current Center frequency.  If Wp or Ws 
  1992.       are then outside of the acceptable ranges, Wp or Ws is then set to its 
  1993.       limit and the Center and Width are recalculated. 
  1994.    3. If Wp is changed, the Width and Center are automatically recalculated to 
  1995.       reflect the new start of the filter. 
  1996.    4. If Ws is changed, the Width and Center are automatically recalculated to 
  1997.       reflect the new end of the filter. 
  1998.  
  1999.  The bandpass filter has been selected because of the desirable effect on 
  2000.  typical sounds that will be processed by PMsndX such as voice or music. 
  2001.  However, if other types of noise are to be filtered, noise can be added to the 
  2002.  filter which results in a sharper peak of the filter.  To add this noise, 
  2003.  select the checkbox for "Add filter noise". Selecting the checkbox again will 
  2004.  disable the filter noise. 
  2005.  
  2006.  Note:  The display of the frequency response for the filter does not reflect 
  2007.         added noise. 
  2008.  
  2009.  
  2010. ΓòÉΓòÉΓòÉ 2.3.8. Rate ΓòÉΓòÉΓòÉ
  2011.  
  2012. This function resamples a file so that the final sampling rate is changed.  As 
  2013. a result of this function, the number of samples will be changed to reflect the 
  2014. new sampling rate, but the effective playback speed will not be changed. The 
  2015. controls for this effect simply specify the new sampling rate.  Once a new rate 
  2016. is selected, the sample is resampled to interpolate the new playback points. 
  2017. Doubling the sampling rate doubles the number of samples. 
  2018.  
  2019. Every sound file is produced by sampling an analog wave at a specific 
  2020. frequency.  As a result, the sound must be played back at the same frequency in 
  2021. order for it to be reproduced clearly.  Higher sampling frequencies result in 
  2022. better quality sound but increases the size of the file.  Most PC based sound 
  2023. cards are designed to operate most effectively at multiples of 11025 Hz; 
  2024. unfortunately, many sound files are sampled at rates which are not multiples of 
  2025. 11025 Hz and they can be resampled to be playable by applications which cannot 
  2026. play these rates.  A drawback of sampling is that it may degrade the actual 
  2027. samples because it must interpolate (predict) the original analog waveform 
  2028. which introduces slight errors.  In most cases, this will not be 
  2029. distinguishable by the human ear. 
  2030.  
  2031. Once a sample has been loaded into memory, the current rate information is 
  2032. displayed on the RATE page of the notebook. The user may select from a set of 
  2033. standard sampling rates for common computer formats or may specify a specific 
  2034. rate. OS/2 and Windows use standard rates which are multiples of 11025 Hz. 
  2035. Sun, DEC, and NeXT computers commonly use a sampling rate of 8000 Hz.  Standard 
  2036. rates of 8000, 11025, 22050, and 44100 Hz have been provided for the user to 
  2037. select. 
  2038.  
  2039. If the user wishes to use a sampling rate which is not one of these, the button 
  2040. for Non-Standard should be pressed.  This will activate the slider bar and user 
  2041. input windows to allow the user to specify the rate.  The slider bar can be 
  2042. used to quickly change the rate in the input window or the user may select the 
  2043. input window and type in the desired rate. 
  2044.  
  2045.  
  2046. ΓòÉΓòÉΓòÉ 2.3.9. Speed ΓòÉΓòÉΓòÉ
  2047.  
  2048. This function will change the effective playback speed of a sample by 
  2049. resampling at the desired rate; however, the final result is still played at 
  2050. the current speed. The controls for this effect simply specify the new playback 
  2051. speed.  Once a new speed is selected, the sample is resampled to interpolate 
  2052. the new playback points. As a result, a sample is still played at the same 
  2053. rate, but the data is modified to play at the new rate.  This allows the sample 
  2054. to be stored in a file which is of a standard rate.  The result of doubling the 
  2055. effective playback speed is half the number of samples. 
  2056.  
  2057. As an example, if the starting sampling rate is 11025 Hz an this function is 
  2058. used to set the speed for 22050 Hz, the file will be resampled for 22050 Hz and 
  2059. then the header will be set for 11025 Hz.  The end result is a file which is 
  2060. sampled at 11025 Hz but played at 22050 Hz. 
  2061.  
  2062. This is the same thing as setting a phonograph to a different speed such that 
  2063. the sound is played too fast or too slow.  This function is similar to the RATE 
  2064. function except that the target playback rate is changed as the sample is 
  2065. interpolated.  This function does use interpolation to predict the original 
  2066. analog waveform; therefore, the resulting sample will contain slight errors 
  2067. just like the RATE function. 
  2068.  
  2069. The user may select any of the standard rates including 8000 Hz, 11025 Hz, 
  2070. 22050 Hz, and 44100 Hz.  Additionally, the user may specify the playback speed 
  2071. to be either double (x2) or half (x1/2) or may specify a specify playback speed 
  2072. by selecting the User button.  If a speed other than the current speed is 
  2073. specified, the DOIT button will be activated which will allow the user to 
  2074. perform the change. 
  2075.  
  2076.  
  2077. ΓòÉΓòÉΓòÉ 2.3.10. Playback speed ΓòÉΓòÉΓòÉ
  2078.  
  2079. This function will change the real playback speed of a sample by changing the 
  2080. header information; however, the file is not resampled.  As an example, if the 
  2081. starting sampling rate is 11025 Hz an this function is used to set the speed 
  2082. for 22050 Hz, the file header will be changed so that the playback speed is 
  2083. 22050 Hz.  The result of doubling the real playback speed has no effect on the 
  2084. number of samples. 
  2085.  
  2086. The controls for this effect simply specify the new playback speed.  Once a new 
  2087. speed is selected, the header is modified.  As a result of this function, 
  2088. samples may not be playable all computers.  A computer must be capable of 
  2089. playing samples at the new rate if they are to play the file at all. 
  2090.  
  2091. The user may select any of the standard rates including 8000 Hz, 11025 Hz, 
  2092. 22050 Hz, and 44100 Hz.  Additionally, the user may specify the playback speed 
  2093. to be either double (x2) or half (x1/2) or may specify a specify playback speed 
  2094. by selecting the User button.  If a speed other than the current speed is 
  2095. specified, the DOIT button will be activated which will allow the user to 
  2096. perform the change. 
  2097.  
  2098.  
  2099. ΓòÉΓòÉΓòÉ 2.3.11. Echo ΓòÉΓòÉΓòÉ
  2100.  
  2101. An echo is created when sound reflects off an object (or multiple objects) and 
  2102. returns to the originator at slight time offsets.  Each bounce reduces the 
  2103. intensity of the sound such that the volume diminishes with each bounce.  The 
  2104. ECHO tool is created by simulating a set of walls forward and aft of the source 
  2105. such that the sound would bounce off of each wall and be reflected back to the 
  2106. other wall.  In order for the ECHO effect to be strongly heard, at least two 
  2107. echo points should be set up with total attenuation of less than 1.0. 
  2108.  
  2109. The echo effect will modify a sample to provide attenuation at specific points 
  2110. in a sample.  The operator must specify the points where the echo effects are 
  2111. to start and an attenuation or Volume for the echo.  The attenuation determines 
  2112. the length of time that it takes for the echo to die away.  If the Attenuation 
  2113. specified for all of the echo points is greater than 1, then the echo will 
  2114. "melt" rather than fading away and consequently may take a long time to 
  2115. complete.  If an attenuation is set to 0 or less, the Echo point is ignored. 
  2116.  
  2117. The echo effect presents an interesting challenge to the user interface.  How 
  2118. do you provide the user with an intuitive method to set the echo locations and 
  2119. the strength of the echo from a dialog box?  Well, look at the ECHO notebook 
  2120. page and follow along in the explanation of the operation.  This notebook page 
  2121. includes a graphical display of the current sample, a text entry field for 
  2122. editing (e.g. adding or deleting) time marks, and a volume control for setting 
  2123. the strength of the echo. 
  2124.  
  2125. The ECHO notebook is centered around the graph at the top of the page.  This 
  2126. display is the primary point of control. However, to allow for a bit more 
  2127. direct control, the user may use the entry fields to add and delete echo points 
  2128. too. To explain it all, I will start with the graphical display first and then 
  2129. lead to the secondary controls. 
  2130.  
  2131. Once a sample has been loaded into memory, the graphical display will become 
  2132. active.  The display is controlled through two slider bars for the position in 
  2133. the sample and for the magnification. The sample is normalized so that the 
  2134. largest sample value will hit the limit of the display.  This makes the display 
  2135. volume independent but gives maximum clarity of the actual waveform in memory. 
  2136. Markers may be added or moved to set the echo points in the waveform.  To aid 
  2137. the operator in locating the desired echo point, the display contains a status 
  2138. bar for the starting timemark for the sample in the window, the current 
  2139. timemark under the mouse, and the magnification factor. 
  2140.  
  2141. To move to the right or left in the display, the horizontal slider bar may be 
  2142. used.  Pressing the end arrows moves the display one displayed sample to the 
  2143. left or right.  When the slider bar is pressed, the display will move one half 
  2144. screen to the right or left.  The user may move the display to a region quickly 
  2145. by selecting the slider button and dragging it to the appropriate position. 
  2146. The display is immediately updated to display the current position. 
  2147.  
  2148. The display area at the bottom of the graph provides a timemark indicator for 
  2149. the first sample appearing at the left of the graph.  This provides a reference 
  2150. for moving through the data.  The time marker is displayed in the form of 
  2151. m:ss.ssss where m is the number of minutes into the sample and ss.ssss is the 
  2152. number of seconds into the sample. 
  2153.  
  2154. Even the smallest sample contains more data than can fit on the graphical 
  2155. display.  For this reason the vertical slider to the right of the graphical 
  2156. display is used to adjust the viewing magnification of the samples.  The 
  2157. maximum magnification of the samples is determined by the length of the sample 
  2158. and is calculated by dividing the total sample length by the largest number of 
  2159. data points which may be scrolled through on the display.  The display is 
  2160. limited to the maximum size of an signed 16 bit value due to the limitations of 
  2161. the signals for the horizontal slider bar. This results in a maximum of 32767 
  2162. data points which can be displayed and scrolled through. 
  2163.  
  2164. Initially, the magnification is set for the maximum displayable.  To decrease 
  2165. the magnification (i.e. zoom out) on the sample, move the slider down the bar. 
  2166. The arrows on the ends of the bar can be used to increase or decrease the 
  2167. magnification in increments of 1.  Selecting between the button and the arrows 
  2168. doubles or halves the magnification. If the button is selected, the 
  2169. magnification can be set immediately to a value.  Markers are displayed for the 
  2170. nearest point in the zoom.  However, markers can only be set on exact multiples 
  2171. of the zoom.  Therefore, when trying to move a marker, if it is set at a 
  2172. different magnification, it may not be possible to move the marker without 
  2173. returning to that zoom.  Essentially, the marker is displayed but cannot be 
  2174. selected because that exact sample point is not visible. I considered making 
  2175. the mouse select the nearest marker, but this is a point of confusion if many 
  2176. markers are displayed at the same location for a specific magnification. 
  2177.  
  2178. The current magnification is displayed in the status area of the display in the 
  2179. form of "x1/nnnnn" where "nnnnn" is replaced by the current magnification 
  2180. number (i.e. number of points represented by a single point on the display). 
  2181. If the display says that the zoom is x1/2, then the magnification of the 
  2182. display is halved.  If this sounds confusing, then just play with the notebook 
  2183. page for a bit to get a feel for the operation of the zoom. 
  2184.  
  2185. Before going on, another area of the display needs to be described.  The center 
  2186. number on the status area of the display indicates the timemark for the current 
  2187. (or last) mouse position. Whenever the mouse is moved into the display area, 
  2188. this number will be updated to indicate the time offset for that particular 
  2189. point.  This takes into account the magnification. 
  2190.  
  2191. Now for the fun part.  To add an echo point to the sample, move the mouse to 
  2192. the place where you desire the echo.  The status display will provide a 
  2193. reference for the timemark. When the proper position has been selected, click 
  2194. the mouse and a blue marker will be placed.  If the mouse is released, the 
  2195. marker will be set at that location in the sample.  If the mouse is not 
  2196. released, the marker may be dragged across the display. This marker may be 
  2197. moved later if necessary by other means too. 
  2198.  
  2199. Note:  If at any time the mouse pointer is moved outside of the display before 
  2200.        the mouse button is released, the marker will not be set and the blue 
  2201.        mark will be erased from the display. 
  2202.  
  2203.   A echo marker may be moved by positioning the mouse pointer over the marker 
  2204.  and pressing the mouse button.  If the marker is on a multiple of the zoom 
  2205.  level, it will be selected and will follow the mouse as long as the button is 
  2206.  pressed.  When the button is released, the marker will be placed at that 
  2207.  position. 
  2208.  
  2209.  A marker may be moved to another time delay by entering the desired delay 
  2210.  directly through the Time Mark entry field. 
  2211.  
  2212.  Note:  If the mouse is moved off the display area, the marker will be restored 
  2213.         to its original position. 
  2214.  
  2215.   For each marker displayed, the timemark is stored in a Combo Box.  This box 
  2216.  is like an entry field in that the user can edit the time directly ; however, 
  2217.  it also has a drop down box that can scroll vertically through all of the 
  2218.  different markers.  This type of box provides a great deal of flexibility for 
  2219.  the user. 
  2220.  
  2221.  To add a marker at a specific time, position the cursor in the Timemark box 
  2222.  and edit the time index.  The format is the same as that used to display the 
  2223.  time marks in the main display.  Enter the number of minutes followed by the 
  2224.  seconds.  The granularity of the seconds is on the order of 1/10000 of a 
  2225.  second.  For example, entering 6:54.4253 would accept a time mark at 6 
  2226.  minutes, 54.4253 seconds.  If a value is entered with is beyond the maximum 
  2227.  sample of the file or less than 0, then the data is ignored. 
  2228.  
  2229.  Once the desired time mark has been entered, the user may press the Add button 
  2230.  to place the marker in the current database.  All timemarks added to the 
  2231.  display use the volume specified for the last timemark, or 0 if no volume has 
  2232.  been set yet. 
  2233.  
  2234.  When the listbox is pulled down for the timemarks, each of the timemarks that 
  2235.  have been entered are displayed in a vertically and horizontally scrollable 
  2236.  window.  Up to 32 markers may be placed in the file and any markers which are 
  2237.  unused are displayed with the word "EMPTY".  The markers are placed in the 
  2238.  database in the order that they are entered unless a free slot is open (from 
  2239.  being deleted).  The user may select any of the time marks using the combo 
  2240.  box. If the selected timemark is not empty, the display will be updated to 
  2241.  display the selected timemark in the center of the graph.  In the event that 
  2242.  the timemark is too close to the end or beginning of the sample to display in 
  2243.  the center of the graph, the timemark will be displayed without being 
  2244.  centered.  Once a timemark has been selected, the Del button may be pressed to 
  2245.  delete the marker from the database.  The entry field is not cleared in order 
  2246.  to allow the user to directly edit the timemark which was deleted and add it 
  2247.  later. 
  2248.  
  2249.  The volume for each timemark may be set by specifying a value in the volume 
  2250.  entry field.  This is a simple entry field in which the user can type or 
  2251.  delete numbers.  Since the volume (attenuation) for each timemark may range 
  2252.  from 0 to infinity, the only method for entering the volume is through the 
  2253.  keyboard.  Sorry, no sliders here.  As each character is typed, it is stored. 
  2254.  The user does not have to press enter or any key to accept the value. 
  2255.  
  2256.  Note:  The most common mistake for the echo effect is in forgetting to enter a 
  2257.         value in the Volume field.  Remember that you must provide an 
  2258.         attenuation for the echo in the Volume entry field to make the echo 
  2259.         point valid. 
  2260.  
  2261.  
  2262. ΓòÉΓòÉΓòÉ 2.3.12. Invert ΓòÉΓòÉΓòÉ
  2263.  
  2264. Any series of samples may be inverted such that all positive values become 
  2265. negative and all negative values become positive.  A sample is composed of 
  2266. numbers which are digital snapshots of an analog wave at regular intervals. 
  2267. These numbers can take on positive and negative values which push or release 
  2268. the cone of a speaker to produce sound. 
  2269.  
  2270. To the human ear, there is no difference in the sound produced; however, 
  2271. mathematically, the new wave is very different.  An inverted wave may be added 
  2272. to a normal wave to mathematically subtract one from another. When this 
  2273. function is combined with the MERGE function of the editor, samples can be 
  2274. added together to eliminate common frequencies. 
  2275.  
  2276. The range and channels for this function are selected through the editor. 
  2277.  
  2278.  
  2279. ΓòÉΓòÉΓòÉ 2.3.13. Reverse ΓòÉΓòÉΓòÉ
  2280.  
  2281. When the digital data of a sample is reversed, the effect is that of playing a 
  2282. record backwards. 
  2283.  
  2284. This effect allows the user to reverse a section (or all) of a sample.  The 
  2285. range and channels for this function are selected through the editor. 
  2286.  
  2287.  
  2288. ΓòÉΓòÉΓòÉ 2.3.14. Vibro ΓòÉΓòÉΓòÉ
  2289.  
  2290. This tool simulates the effect of driving a sound through a rotating fan such 
  2291. that the intensity of the sample is modified at a regular interval. 
  2292.  
  2293. This function performs the "world-famous" Fender Vibro-Champ sound effect to a 
  2294. sound sample by using a sine wave as the amplitude of the volume at each 
  2295. sample.  This tool requires that the user set the Speed and the Depth of the 
  2296. sine wave. 
  2297.  
  2298. The speed setting gives the frequency of the sine wave in Hertz.  The range of 
  2299. values for the slider are from 1 to 30 in increments of 1 Hertz.  A value of 0 
  2300. would be useless for a frequency and is not allowed. 
  2301.  
  2302. The depth setting gives the amount by which the volume will be cut into by the 
  2303. sine wave.  The range of values for the slider are from 0.0 to 1.0 in 
  2304. increments of 0.01.  The initial value of the slider is 0.5. 
  2305.  
  2306.  
  2307. ΓòÉΓòÉΓòÉ 2.3.15. Fade ΓòÉΓòÉΓòÉ
  2308.  
  2309. This effect allows the user to either fade in or fade out the volume of a 
  2310. sample.  Fading the data in a sample is produced by increasing or decreasing 
  2311. the volume of the sample over a period.  To fade a sample in is to slowly 
  2312. increase the volume of the sample from 0 to the normal volume of the sample 
  2313. over a block of time.  To fade the sound out is just the opposite in which the 
  2314. volume of the sample is slowly reduced over a period. 
  2315.  
  2316. The FADE tool provides three methods for fading which provide a robust means 
  2317. for controlling the volume of the data over the specified range of operation. 
  2318. These are Linear, Slow Geometric, and Fast Geometric. 
  2319.  
  2320.  
  2321. ΓòÉΓòÉΓòÉ 2.3.16. Limit ΓòÉΓòÉΓòÉ
  2322.  
  2323. Most anyone who has received a sound sample from different sources has had the 
  2324. problem that the recorded volume is inconsistent between different samples. 
  2325. After all, there is no standard recording level for the different machines or 
  2326. different software. 
  2327.  
  2328. To allow the user to adjust the volume of a sample, PMsndX provides a tool 
  2329. which can either adjust the volume by multiplying every sample by a fixed 
  2330. amount or by multiplying the samples by a value based on the limit of the data 
  2331. that can held in memory. 
  2332.  
  2333. By specifying a maximum value for the sound sample, all sound samples can be 
  2334. set to have a similar maximum.  The obvious use for this function is to allow a 
  2335. library of sounds to be set at the same volume.  The value used for the maximum 
  2336. volume is based on a percentage of the maximum data that can be held in a 
  2337. single sample.  As an example, a value of 100% for the volume represents a 
  2338. value of 127 for a signed byte sample. 
  2339.  
  2340. When the button for the Maximum is selected, the slider bar directly beneath 
  2341. the button is activated.  Initially, this will be set to the current volume in 
  2342. terms of the percentage of the maximum value for the sample.  The volume may be 
  2343. adjusted by setting the slider to a value between 0 and 100 percent of the 
  2344. maximum. 
  2345.  
  2346. Since the value is based on a percentage of the maximum value of the data that 
  2347. can be stored in a sample, clipping is not possible. 
  2348.  
  2349. When the button for the Fixed value is selected, the slider bar directly 
  2350. beneath the button is activated as well as the checkbox for clipping.  The 
  2351. fixed bar provides the means to multiply all sound samples by a fixed value 
  2352. between 0 and 2 in increments of 0.1. A value of 1 makes no change.  Any value 
  2353. greater than 1 increases the volume and any value less than 1 decreases the 
  2354. volume.  A value of 2 doubles the volume of the sample. 
  2355.  
  2356. When using fixed sampling it is possible to exceed the maximum data that may be 
  2357. stored for a sample.  The Allow Clipping checkbox may be selected to allow the 
  2358. data to be clipped.  If the checkbox is not set and if the fixed multiple will 
  2359. result in clipping, then the multiple will be set to the maximum value that 
  2360. will not result in clipping.  If the clipping box is set, data may exceed the 
  2361. maximum that may be stored for the sample which will result in noise. 
  2362.  
  2363.  
  2364. ΓòÉΓòÉΓòÉ 2.3.17. Balance ΓòÉΓòÉΓòÉ
  2365.  
  2366. When a sample has more than one channel, the volume of the individual channels 
  2367. can be varied.  The balance of the channels can be achieved either 
  2368. instantaneously or over a period of time.  These are the same basic functions 
  2369. as used in the FADE and SWAP effects and are Linear, Slow Geometric, and Fast 
  2370. Geometric, and Step. 
  2371.  
  2372. The volume of a sample may vary by either starting at the specified percentage 
  2373. of the current volume for each channel and progressively approaching full 
  2374. volume.  This is similar to fading in a sample and is achieved by selecting the 
  2375. "IN" button.  The opposite effect is achieved when the volume starts at the 
  2376. current volume and progressively decreases to a percentage of the current 
  2377. volume. 
  2378.  
  2379. When balancing a sample, the user must specify a percentage for each channel. 
  2380. When fading in, this is the percentage that the volume will start at for each 
  2381. respective channel. When fading out, this is the final percentage of the 
  2382. original volume.  The display at the top of this dialog varies depending on the 
  2383. number of channels in the current sample. 
  2384.  
  2385.  
  2386. ΓòÉΓòÉΓòÉ 2.4. Rexx ΓòÉΓòÉΓòÉ
  2387.  
  2388. EdSndX integrates the features of REXX to provide a powerful command scripting 
  2389. capability.  EdSndX provides the necessary extensions to REXX to provide full 
  2390. access to all of the features normally provided through the dialogs of the user 
  2391. interface.  Unlike sound samples, only one REXX script can be open at a time. 
  2392. The REXX script runs as a subfunction of the control panel and provides a 
  2393. syntax which can manipulate each sample that is open through a handle which is 
  2394. returned to the REXX script with the sample is opened or created. 
  2395.  
  2396. Any REXX command script can be run through any of the means for opening a file 
  2397. such as using the OPEN dialog box or through a DRAG/DROP operation.  As with 
  2398. all REXX command scripts, the first line of the file must be a comment of the 
  2399. form /* ... */. PMsndX will automatically recognize a command script using the 
  2400. extension of .CMD or the OPEN dialog allows any file to be recognized as a 
  2401. command script by providing an override in the Format group of the OPEN dialog. 
  2402.  
  2403. As with any REXX script, the SAY command may be used to write to standard 
  2404. output (stdout); and, the PULL command may be used to retrieve information from 
  2405. standard input (stdin). When input is requested from the REXX window, the 
  2406. desktop focus will automatically be directed to the REXX window and it will be 
  2407. brought to the foreground. 
  2408.  
  2409. Note:  Do not use CHARIN to retrieve input from the keyboard. 
  2410.  
  2411.  The syntax of the language is divided up into groups associated with the 
  2412.  buttons on the main control panel. Additionally, a few other controls are 
  2413.  provided to enhance a script capability for enhancing the user interface. 
  2414.  
  2415.  When a REXX command script is run, a REXX OUTPUT window (see illustration 
  2416.  below)  is opened to display any outputs from the script.  By default, all 
  2417.  standard outputs (e.g. output from SAY commands or commands echoed) are 
  2418.  displayed in black.  Outputs from PMsndX commands is written in blue, and any 
  2419.  errors are written in red.  A REXX script can be stopped at any time by 
  2420.  closing the REXX OUTPUT window.  If no errors occur while executing the REXX 
  2421.  command script, the REXX OUTPUT window will automatically be dismissed.  If 
  2422.  errors occur, the window will remain open until the user closes it.  Only one 
  2423.  REXX OUTPUT window can be open at any one time so the window must be closed 
  2424.  before another REXX script can be run.  The colors used to display the REXX 
  2425.  output may be modified through the properties dialog. 
  2426.  
  2427.  Note:  As with REXX scripts, all commands can be entered in any combination of 
  2428.         lower and upper case.  For example, the following commands are 
  2429.         equivalent: "file open tmp.au", "FILE open TMP.AU", "FiLe OpEn TmP.Au". 
  2430.  
  2431.  
  2432. ΓòÉΓòÉΓòÉ 2.4.1. Syntax Conventions ΓòÉΓòÉΓòÉ
  2433.  
  2434. The extensions provided by EdSndX have been designed to utilize a consistent 
  2435. format.  The extensions are divided into three groups:  commands, functions, 
  2436. and arguments. 
  2437.  
  2438. REXX functions are those extensions provided by PMsndX which require that 
  2439. PMsndX return some value to the calling REXX script.  The function extensions 
  2440. use the arguments to specify the information that is to be returned. 
  2441.  
  2442. REXX arguments are the keywords and parameters which are added to commands and 
  2443. functions to provide information about the specific task to be performed.  All 
  2444. arguments follow a repetitive format which utilizes keywords which usually have 
  2445. associated parameters. 
  2446.  
  2447.  
  2448. ΓòÉΓòÉΓòÉ 2.4.1.1. Function Syntax ΓòÉΓòÉΓòÉ
  2449.  
  2450. REXX functions are composed of a name followed by keyword and parameter 
  2451. combinations separated by commas and enclosed in parenthesis.  Functions are 
  2452. used to return data to the calling REXX script and so always appear on the 
  2453. right side of an = character. 
  2454.  
  2455. The general syntax of a function is: 
  2456.  
  2457. X=FUNCTION(keyword, Parameter, [,keyword, Parameter,...]) 
  2458.  
  2459.  
  2460. ΓòÉΓòÉΓòÉ 2.4.1.2. Argument Syntax ΓòÉΓòÉΓòÉ
  2461.  
  2462. The Arguments used in EdSndX should be in order of a keyword followed 
  2463. immediately by a parameter (if one is necessary). All required 
  2464. keyword/parameter combinations must appear first, followed by any optional 
  2465. keyword/parameter combinations. 
  2466.  
  2467. To convey the syntax of the REXX extensions, the individual components are 
  2468. color keyed to indicate their use. The following legend should be referred to 
  2469. when reading the actual command and function syntax: 
  2470.  
  2471. FUNCTION: The name of the function is always first and is required. 
  2472.  
  2473. keyword:  Special keywords are used to indicate that a parameter is being 
  2474. specified for a command. The keywords of a command may be entered in any order 
  2475. but must be followed by their corresponding parameter. 
  2476.  
  2477. Parameters:  Portions of a command which are used as variable parameters can 
  2478. take on different formats and must be entered after the corresponding keyword. 
  2479.  
  2480. [...]:  Parameters which are optional will appear between brackets ([]). 
  2481. Anything between the brackets is not required for the command but may be added 
  2482. to modify the operation. 
  2483.  
  2484. When numeric values are required, the format will be indicated as follows: 
  2485.  
  2486. 'mm:ss.hhhh' indicates that a time is to be entered. The format indicates that 
  2487. the time is to be given in minutes followed by a colon (:), the number of 
  2488. seconds followed by a period (.) and the fractions of seconds.  For example, 
  2489. '10:58.0001' indicates 10 minutes, 58 seconds, and 1 ten-thousandth of a 
  2490. second.  Note that the time must be enclosed between single quotes. 
  2491.  
  2492. #.# indicates that a decimal number is to be entered.  The range for the number 
  2493. is provided in braces immediately following.  For example, #.#{0.0-1.0} 
  2494. indicates that a number between 0.0 and 1.0 inclusive is required. 
  2495.  
  2496. #{range} indicates that a numeric value is required and the range is specified 
  2497. in the braces.  For example, #{1-8192} indicates that a numeric value between 1 
  2498. and 8192 inclusive is required. 
  2499.  
  2500. 'text' indicates that a text string is required.  The text must be enclosed in 
  2501. single quotes and must appear as the last parameter in the line.  All data 
  2502. after the keyword TEXT will be treated as the text for the operation. 
  2503.  
  2504. {item1,item2,...} is used to indicate that a finite set of values are required. 
  2505.  
  2506. Note:  The parameter YES is equivalent to setting a checkbox.  The parameter NO 
  2507.        is equivalent to clearing a checkbox. 
  2508.  
  2509.  Descriptions:  With each command group is a short description of the operation 
  2510.  of the commands in that group. Additionally, every command may also have 
  2511.  special information which is unique to the command or pertinent to the usage 
  2512.  of the command. 
  2513.  
  2514.  
  2515. ΓòÉΓòÉΓòÉ 2.4.2. File Operations ΓòÉΓòÉΓòÉ
  2516.  
  2517. All of the features of the OPEN and SAVE dialog boxes are available through the 
  2518. FILE operations.  In addition to the standard items in the dialog box, the 
  2519. capability to set the default OPEN and SAVE paths is provided to simplify batch 
  2520. operations. 
  2521.  
  2522. The FILE operations are provided through functions and return a handle which is 
  2523. used to reference the file.  There are two reasons that the FILE commands are 
  2524. implemented as functions instead of subcommands.  The parameters of a 
  2525. subcommand are separated by spaces or other special parameters which EdSndX 
  2526. does not receive even if the parameters are in quotations.  By using the 
  2527. function interface to REXX, PMsndX receives the necessary delimiters to allow 
  2528. filenames to contain special characters and spaces. 
  2529.  
  2530. x=FILE(OPENPATH, PATH) 
  2531.  
  2532. Filenames can be specified in any form (i.e. they may contain a drive letter, a 
  2533. file path, and the actual filename).  However, to make batch operations 
  2534. simpler, the path and drive may be specified using this command and any 
  2535. filenames without paths or drives will use the OPENPATH to locate the file.  By 
  2536. default, the current working directory will be used as the OPENPATH. 
  2537.  
  2538. x=FILE(SAVEPATH, PATH) 
  2539.  
  2540. When saving a file, a default path can be saved similar to the OPENPATH 
  2541. command.  All save operations in which the drive and path are not specified 
  2542. will use the specified path.  By default, the current working directory will be 
  2543. used as the SAVEPATH. 
  2544.  
  2545. handle=FILE(OPEN, filename, [FORMAT, {AU, AIF, AVI, HCM, SF, VOC, SMP, WAV, 
  2546. IFF}]) 
  2547.  
  2548. handle=FILE(OPEN, filename, [FORMAT, {UB, SB, UL}, RATE, #{1-65535}, CHANNELS, 
  2549. {1,2,4}]) 
  2550.  
  2551. handle=FILE(OPEN, filename, [FORMAT, {UW, SW}, RATE, #{1-65535}, CHANNELS, 
  2552. {1,2,4}, ENDIAN, {BIG, LITTLE}]) 
  2553.  
  2554. Filenames must contain the name of a valid file and may optionally include a 
  2555. drive letter and a specific path. If the path and drive letter are not 
  2556. specified, PMsndX will use the current working directory or the path specified 
  2557. in the OPENPATH command. 
  2558.  
  2559. x=FILE(HANDLE, handle SAVE, [FORMAT, {AU, AIF, HCM, SF, VOC, SMP, WAV, IFF, UB, 
  2560. SB, UL}]) 
  2561.  
  2562. x=FILE(HANDLE, handle, SAVEAS, filename, [FORMAT, {AU, AIF, HCM, SF, VOC, SMP, 
  2563. WAV, IFF, UB, SB, UL}]) 
  2564.  
  2565. x=FILE(HANDLE, handle, SAVE, [FORMAT, {UW, SW}, ENDIAN, {BIG, LITTLE}]) 
  2566.  
  2567. x=FILE(HANDLE, handle, SAVEAS, filename, [FORMAT, {UW, SW}, ENDIAN, {BIG, 
  2568. LITTLE}]) 
  2569.  
  2570. When the SAVE form is used, the current filename for the sample is used.  When 
  2571. the SAVEAS form is used, a valid filename must be provided.  Filenames must 
  2572. contain the name of a valid file and may optionally include a drive letter and 
  2573. a specific path. If the path and drive letter are not specified, PMsndX will 
  2574. use the current working directory or the path specified in the SAVEPATH 
  2575. command. 
  2576.  
  2577. x=FILE(HANDLE, handle, CLOSE) 
  2578.  
  2579. This closes the editor display for the file handle specified without saving. 
  2580.  
  2581.  
  2582. ΓòÉΓòÉΓòÉ 2.4.3. Audio Operations ΓòÉΓòÉΓòÉ
  2583.  
  2584. All operations available through the AUDIO section of the editor are accessible 
  2585. through the AUDIO Operations group.  The value returned for all AUDIO 
  2586. operations indicates the success of the operation. 
  2587.  
  2588. x=AUDIO(VOLUME, #{0-100}) 
  2589.  
  2590. The volume control is global across all editors and so there is no association 
  2591. of the VOLUME in the REXX script with a particular editor window. 
  2592.  
  2593. x=AUDIO(HANDLE, handle, PLAY, {ASYNC, SYNC}) 
  2594.  
  2595. The ASYNC option causes the sound to start playing and lets the REXX script 
  2596. continue.  The SYNC option causes the REXX script to pause while waiting for 
  2597. the playback to complete. 
  2598.  
  2599. x=AUDIO(HANDLE, handle, REWIND) 
  2600.  
  2601. handle=AUDIO(RECORD, {ASYNC, SYNC}, TIME, 'mm:ss.hhhh', INPUT, {MIC, LINE}, 
  2602. QUALITY, {8, 16}, CHANNELS, {1, 2}, RATE, #{1-65535}, [OVERWRITE, {YES, NO}], 
  2603. [MONITOR, {YES, NO}]) 
  2604.  
  2605. handle=AUDIO(RECORD, {ASYNC, SYNC}, COUNT, #{1-}, INPUT, {MIC, LINE}, QUALITY, 
  2606. {8, 16}, CHANNELS, {1, 2}, RATE, #{1-65535}, [OVERWRITE, {YES, NO}], [MONITOR, 
  2607. {YES, NO}]) 
  2608.  
  2609. handle=AUDIO(RECORD, {ASYNC, SYNC}, MEMORY, #{1-}, INPUT, {MIC, LINE}, QUALITY, 
  2610. {8, 16}, CHANNELS, {1, 2}, RATE, #{1-65535}, [OVERWRITE, {YES, NO}], [MONITOR, 
  2611. {YES, NO}]) 
  2612.  
  2613. When the AUDIO RECORD function is used, a new editor window is automatically 
  2614. created without a filename.  The return value for the record functions is the 
  2615. handle for the window which is of the same form as the handle returned from a 
  2616. FILE OPEN operation.  The SAVEAS form of the FILE function must be used when 
  2617. saving the new samples. 
  2618.  
  2619.  
  2620. ΓòÉΓòÉΓòÉ 2.4.4. Properties Operations ΓòÉΓòÉΓòÉ
  2621.  
  2622. All PROPERTIES functions return the current value of the property prior to 
  2623. changing it. 
  2624.  
  2625. x=PROPERTIES(ENABLE_MMPM, {YES, NO}) 
  2626.  
  2627. x=PROPERTIES(SHARE_AUDIO, {YES, NO}) 
  2628.  
  2629. x=PROPERTIES(PLAY_16ON8, {YES, NO}) 
  2630.  
  2631. x=PROPERTIES(DEVICE, devicename) 
  2632.  
  2633. x=PROPERTIES(MEMORY, AUTO) 
  2634.  
  2635. x=PROPERTIES(MEMORY, #{1-8192}) 
  2636.  
  2637. x=PROPERTIES(IGNORE_HEADER_STYLE, {YES, NO}) 
  2638.  
  2639. x=PROPERTIES(REQUIRE_AU_HEADER, {YES, NO}) 
  2640.  
  2641. x=PROPERTIES(FORCE_ULAW, {YES, NO, MAYBE}) 
  2642.  
  2643. x=PROPERTIES(INI_PATH, path) 
  2644.  
  2645. x=PROPERTIES(REXX_STDIN_COLOR, {BLACK, BLUE, RED, PINK, GREEN, CYAN, YELLOW, 
  2646. GREY, DGREY, DBLUE, DRED, DPINK, DGREEN, DCYAN, DYELLOW, LGREY}) 
  2647.  
  2648. x=PROPERTIES(REXX_STDOUT_COLOR, {BLACK, BLUE, RED, PINK, GREEN, CYAN, YELLOW, 
  2649. GREY, DGREY, DBLUE, DRED, DPINK, DGREEN, DCYAN, DYELLOW, LGREY}) 
  2650.  
  2651. x=PROPERTIES(REXX_STDERR_COLOR, {BLACK, BLUE, RED, PINK, GREEN, CYAN, YELLOW, 
  2652. GREY, DGREY, DBLUE, DRED, DPINK, DGREEN, DCYAN, DYELLOW, LGREY}) 
  2653.  
  2654. x=PROPERTIES(REXX_COMMAND_COLOR, {BLACK, BLUE, RED, PINK, GREEN, CYAN, YELLOW, 
  2655. GREY, DGREY, DBLUE, DRED, DPINK, DGREEN, DCYAN, DYELLOW, LGREY}) 
  2656.  
  2657. x=PROPERTIES(REXX_DISPLAY_HISTORY, #{64-32767}) 
  2658.  
  2659. x=PROPERTIES(FOOTNOTES, {YES, NO}) 
  2660.  
  2661. x=PROPERTIES(SAVE_POSITIONS, {YES, NO}) 
  2662.  
  2663. x=PROPERTIES(SAVE_OPENPATH, {YES, NO}) 
  2664.  
  2665. x=PROPERTIES(SAVE_SAVEPATH, {YES, NO}) 
  2666.  
  2667. x=PROPERTIES(PLAY_ON_COMMANDLINE_LOAD, {YES, NO}) 
  2668.  
  2669. x=PROPERTIES(EXIT_AFTER_COMMANDLINE_PLAY, {YES, NO}) 
  2670.  
  2671. x=PROPERTIES(FREE_MEMORY_AFTER_LOADING, {YES, NO}) 
  2672.  
  2673. x=PROPERTIES(ENABLE_QUICK_QUEUEING, {YES, NO}) 
  2674.  
  2675. x=PROPERTIES(AUTO_RATE_ADJUST, {YES, NO}) 
  2676.  
  2677. x=PROPERTIES(UNDO, {YES, NO}) 
  2678.  
  2679. x=PROPERTIES(USE_DISPLAYED_CHANNEL, {YES, NO}) 
  2680.  
  2681. x=PROPERTIES(USE_DISPLAYED_RANGE, {YES, NO}) 
  2682.  
  2683. X=PROPERTIES(EDITOR_INFO, {YES, NO}) 
  2684.  
  2685. X=PROPERTIES(EDITOR_ALL_CHANNELS, {YES, NO}) 
  2686.  
  2687. X=PROPERTIES(EDITOR_DELAY_AUDIO_LOADING, {YES, NO}) 
  2688.  
  2689. X=PROPERTIES(EDITOR_SETUP_AUDIO_AT_PLAY, {YES, NO}) 
  2690.  
  2691. X=PROPERTIES(EDITOR_AUTO_REPEAT, {YES, NO}) 
  2692.  
  2693. X=PROPERTIES(EDITOR_FORMAT_TIME, {YES, NO}) 
  2694.  
  2695. X=PROPERTIES(EDITOR_PLAY_MODE_RANGE, {YES, NO}) 
  2696.  
  2697.  
  2698. ΓòÉΓòÉΓòÉ 2.4.5. Edit Operations ΓòÉΓòÉΓòÉ
  2699.  
  2700. The value returned for all EDIT operations indicate the success of the 
  2701. operation. 
  2702.  
  2703. X=EDIT(HANDLE, handle, MANIPULATE, {ALL, 1, 2, 3, 4}) 
  2704.  
  2705. x=EDIT(HANDLE, handle, AREA, ENTIRE_SAMPLE) 
  2706.  
  2707. x=EDIT(HANDLE, handle, AREA, PART, START, 'mm:ss.hhhh', END, 'mm:ss.hhhh') 
  2708.  
  2709. x=EDIT(HANDLE, handle, {COPY, CUT, PASTE, ZERO, REMOVE, CLEAR, MERGE, UNDO}) 
  2710.  
  2711. x=EDIT(HANDLE, handle, {PASTEFROM, MERGEFROM}, handle) 
  2712.  
  2713.  
  2714. ΓòÉΓòÉΓòÉ 2.4.6. Effects Operations ΓòÉΓòÉΓòÉ
  2715.  
  2716. The value returned for all EDIT operations indicate the success of the 
  2717. operation. 
  2718.  
  2719. x=TOOLS(HANDLE, handle, FORMAT, {AU, AIF, HCM, SF, VOC, SMP, WAV, IFF, UB, SB, 
  2720. UL, UW, SW}) 
  2721.  
  2722. x=TOOLS(HANDLE, handle, AVERAGE, 2_TO_1, FROM, {LEFT, CENTER, RIGHT}) 
  2723.  
  2724. x=TOOLS(HANDLE, handle, AVERAGE, 4_TO_1, FROM, {FL, FR, RL, RR}, [FROM, {FL, 
  2725. FR, RL, RR}...]) 
  2726.  
  2727. x=TOOLS(HANDLE, handle, AVERAGE, 4_TO_2, FROM, {FL, FR, RL, RR}, TO, {L, R}, 
  2728. [FROM, {FL, FR, RL, RR}, TO, {L, R}...]) 
  2729.  
  2730. x=TOOLS(HANDLE, handle, DUPE, {1_TO_2, 1_TO_4}) 
  2731.  
  2732. x=TOOLS(HANDLE, handle, DUPE, 2_TO_4, FROM, {L, R}, TO, {FL, FR, RL, RR}, 
  2733. [FROM, {L, R}, TO, {FL, FR, RL, RR}...]) 
  2734.  
  2735. x=TOOLS(HANDLE, handle, RATE, #{1-65535}) 
  2736.  
  2737. x=TOOLS(HANDLE, handle, SPEED, #{1-65535}) 
  2738.  
  2739. x=TOOLS(HANDLE, handle, SPEED, {X2, X1/2}) 
  2740.  
  2741.  
  2742. ΓòÉΓòÉΓòÉ 2.4.6.1. Filter Effects Operations ΓòÉΓòÉΓòÉ
  2743.  
  2744. x=TOOLS(HANDLE, handle, FILTER, BANDPASS, START, #{1-65535}, CUTOFF, 
  2745. #{1-65535}, [ADD_NOISE, {YES, NO}]) 
  2746.  
  2747. x=TOOLS(HANDLE, handle, FILTER, BANDPASS, CENTER, #{1-65535}, WIDTH, 
  2748. #{1-65535}, [ADD_NOISE, {YES, NO}]) 
  2749.  
  2750. x=TOOLS(HANDLE, handle, FILTER, LOWPASS, CENTER, #{1-65535}, GAIN, 
  2751. #.#{0.0-1.0}) 
  2752.  
  2753.  
  2754. ΓòÉΓòÉΓòÉ 2.4.6.2. Special Effects Operations ΓòÉΓòÉΓòÉ
  2755.  
  2756. x=TOOLS(HANDLE, handle, EFFECT, ECHO, MARK, 'mm:ss.hhhh', VOLUME, #.#{0.0-1.0}, 
  2757. [MARK, 'mm:ss.hhhh', VOLUME, #.#{0.0-1.0}, ...]) 
  2758.  
  2759. x=TOOLS(HANDLE, handle, EFFECT, INVERT) 
  2760.  
  2761. x=TOOLS(HANDLE, handle, EFFECT, REVERSE) 
  2762.  
  2763. x=TOOLS(HANDLE, handle, EFFECT, VIBRO, SPEED, #{0-30}, DEPTH, #.#{0.0-1.0}) 
  2764.  
  2765. x=TOOLS(HANDLE, handle, EFFECT, FADE, DIRECTION, {IN, OUT}, METHOD, {LINEAR, 
  2766. SLOW, FAST}) 
  2767.  
  2768. x=TOOLS(HANDLE, handle, EFFECT, LIMIT, MAX, #{0-100}) 
  2769.  
  2770. x=TOOLS(HANDLE, handle, EFFECT, LIMIT, MULTIPLE, #.#{0.0-2.0}) 
  2771.  
  2772. x=TOOLS(HANDLE, handle, EFFECT, BALANCE2, L, #{0-100}, R, #{0-100}, DIRECTION, 
  2773. {IN, OUT}, METHOD, {LINEAR, SLOW, FAST, STEP}) 
  2774.  
  2775. x=TOOLS(HANDLE, handle, EFFECT, BALANCE4, FL, #{0-100}, FR, #{0-100}, RL, 
  2776. #{0-100}, RR, #{0-100}, DIRECTION, {IN, OUT}, METHOD, {LINEAR, SLOW, FAST, 
  2777. STEP}) 
  2778.  
  2779.  
  2780. ΓòÉΓòÉΓòÉ 2.4.7. User Operations ΓòÉΓòÉΓòÉ
  2781.  
  2782. EdSndX also provides a dialog method of user input through standard OS/2 
  2783. MESSAGE dialog boxes.  A message dialog provides the user with a means to 
  2784. present text with a dialog containing a icon and standard buttons along with 
  2785. standard OS/2 system sounds to catch the attention of the user.  Since a value 
  2786. is returned from the MESSAGE, it must be formatted as a function. 
  2787.  
  2788. x=MESSAGE(HANDLE, handle, ASK, {OK, OKCANCEL, CANCEL, ENTER, ENTERCANCEL, 
  2789. RETRYCANCEL, ABORTRETRYIGNORE, YESNO, YESNOCANCEL}, ICON, {NOICON, ICONHAND, 
  2790. QUESTION, EXCLAMATION, ASTERISK, INFORMATION, QUERY, WARNING, ERROR}, [MODE, 
  2791. {APPLICATION, SYSTEM},] [MOVEABLE, {YES, NO},] TEXT, 'text', TITLE, 'text') 
  2792.  
  2793. The ASK parameter determines the possible return values. The data returned is a 
  2794. string representing the button pressed by the user.  The possible return values 
  2795. are: 
  2796.  
  2797. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2798. ΓöéType            ΓöéReturn  Γöé
  2799. Γöé                Γöé        Γöé
  2800. ΓöéOK              ΓöéOK      Γöé
  2801. Γöé                Γöé        Γöé
  2802. Γöé                ΓöéERROR   Γöé
  2803. Γöé                Γöé        Γöé
  2804. ΓöéOKCANCEL        ΓöéOK      Γöé
  2805. Γöé                Γöé        Γöé
  2806. Γöé                ΓöéCANCEL  Γöé
  2807. Γöé                Γöé        Γöé
  2808. Γöé                ΓöéERROR   Γöé
  2809. Γöé                Γöé        Γöé
  2810. ΓöéCANCEL          ΓöéCANCEL  Γöé
  2811. Γöé                Γöé        Γöé
  2812. Γöé                ΓöéERROR   Γöé
  2813. Γöé                Γöé        Γöé
  2814. ΓöéENTER           ΓöéENTER   Γöé
  2815. Γöé                Γöé        Γöé
  2816. Γöé                ΓöéERROR   Γöé
  2817. Γöé                Γöé        Γöé
  2818. ΓöéENTERCANCEL     ΓöéENTER   Γöé
  2819. Γöé                Γöé        Γöé
  2820. Γöé                ΓöéCANCEL  Γöé
  2821. Γöé                Γöé        Γöé
  2822. Γöé                ΓöéERROR   Γöé
  2823. Γöé                Γöé        Γöé
  2824. ΓöéRETRYCANCEL     ΓöéRETRY   Γöé
  2825. Γöé                Γöé        Γöé
  2826. Γöé                ΓöéCANCEL  Γöé
  2827. Γöé                Γöé        Γöé
  2828. Γöé                ΓöéERROR   Γöé
  2829. Γöé                Γöé        Γöé
  2830. ΓöéABORTRETRYIGNOREΓöéABORT   Γöé
  2831. Γöé                Γöé        Γöé
  2832. Γöé                ΓöéRETRY   Γöé
  2833. Γöé                Γöé        Γöé
  2834. Γöé                ΓöéIGNORE  Γöé
  2835. Γöé                Γöé        Γöé
  2836. Γöé                ΓöéERROR   Γöé
  2837. Γöé                Γöé        Γöé
  2838. ΓöéYESNO           ΓöéYES     Γöé
  2839. Γöé                Γöé        Γöé
  2840. Γöé                ΓöéNO      Γöé
  2841. Γöé                Γöé        Γöé
  2842. Γöé                ΓöéERROR   Γöé
  2843. Γöé                Γöé        Γöé
  2844. ΓöéYESNOCANCEL     ΓöéYES     Γöé
  2845. Γöé                Γöé        Γöé
  2846. Γöé                ΓöéNO      Γöé
  2847. Γöé                Γöé        Γöé
  2848. Γöé                ΓöéCANCEL  Γöé
  2849. Γöé                Γöé        Γöé
  2850. Γöé                ΓöéERROR   Γöé
  2851. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2852.  
  2853. The following ICONs and the associated sounds for the dialog (from the System 
  2854. Events in the MMPM Sound setup): 
  2855.  
  2856.       NOICON - () - NONE 
  2857.       ICONHAND - () - Error sound 
  2858.       QUESTION - () - Information sound 
  2859.       EXCLAMATION - () - Warning sound 
  2860.       ASTERISK - () - NONE 
  2861.       INFORMATION - () - NONE 
  2862.       QUERY - () - Information sound 
  2863.       WARNING - () - Warning sound 
  2864.       ERROR - () - Error sound 
  2865.  
  2866.  The MODE specifies how the window is displayed with relation to other windows 
  2867.  on the system.  If no MODE keyword is specified or APPLICATION is specified, 
  2868.  then the dialog window will can be covered by other windows from the desktop. 
  2869.  If SYSTEM is specified, then the dialog box will prevent other windows on the 
  2870.  desktop from covering it. 
  2871.  
  2872.  The MOVEABLE keyword is used to determine if a titlebar is provided on the 
  2873.  message dialog box.  If the MOVEABLE keyword is not specified or if it is 
  2874.  specified as NO, then there will be no titlebar on the message dialog and it 
  2875.  cannot be moved around the screen.  Specifying YES allows the user to move the 
  2876.  message dialog box around the screen. 
  2877.  
  2878.  
  2879. ΓòÉΓòÉΓòÉ 2.4.8. Miscellaneous Operations ΓòÉΓòÉΓòÉ
  2880.  
  2881. The value returned for all EDIT operations indicate the success of the 
  2882. operation. 
  2883.  
  2884. x=PMSNDX(EXIT) 
  2885.  
  2886. The EXIT keyword sends a message to PMsndX to exit.  This is the same as 
  2887. clicking CLOSE on the system menu of the control panel. 
  2888.  
  2889. x=PMSNDX(UPDATEWINDOWS) 
  2890.  
  2891. The UPDATEWINDOWS keyword forces PMsndX to update all windows that are 
  2892. currently displayed.  During the processing of a REXX script, most windows are 
  2893. not updated when they are open.  Of course there are exceptions to this such as 
  2894. the EDITOR and the AUDIO dialogs in which updates are required to allow the 
  2895. user to maintain control over the current operation. 
  2896.  
  2897. x=PMSNDX(CLOSE, {YES,NO}) 
  2898.  
  2899. If no errors occur during the execution of a REXX script, the REXX output 
  2900. window will automatically close itself.  However, by specifying the CLOSE 
  2901. keyword and the parameter YES, the window can be forced to remain open.  In the 
  2902. event that an error occurs in the REXX script, this command has no effect. 
  2903.  
  2904. x=PMSNDX(IGNORE_SYNTAX_ERRORS, {YES,NO}) 
  2905.  
  2906. When writing REXX scripts for PMsndX, it may be desirable to pass the REXX 
  2907. through the interpreter to check the syntax of the commands without having 
  2908. PMsndX stop at each error.  When this option is turned on, PMsndX will still 
  2909. display the errors in RED, but will not stop after the error. 
  2910.  
  2911. x=PMSNDX(OUTPUT, {YES,NO}) 
  2912.  
  2913. By default, PMsndX displays each PMsndX command or function as it is executed. 
  2914. This output can be turned off with this command by specifying NO 
  2915.  
  2916. x=PMSNDX(TEST_MODE, {YES,NO}) 
  2917.  
  2918. By setting PMsndX into REXX TEST_MODE, REXX scripts will be processed as usual 
  2919. except that the commands will not actually be executed.  This option is 
  2920. primarily used during the testing of the REXX syntax parser during the 
  2921. development of PMsndX, and has been provided to allow scripts to be tested 
  2922. syntactically before using them. 
  2923.  
  2924. return 'text' 
  2925.  
  2926.  
  2927. ΓòÉΓòÉΓòÉ 2.4.9. Query/Test Operations ΓòÉΓòÉΓòÉ
  2928.  
  2929. The functions which make up the QUERY group return values which are identical 
  2930. to the parameters expected by the indicated command.  To determine the range of 
  2931. values that may be returned, see the corresponding command and keyword 
  2932. combinations. 
  2933.  
  2934. X=QUERY(FILE, OPENPATH) 
  2935.  
  2936. X=QUERY(FILE, SAVEPATH) 
  2937.  
  2938. X=QUERY(HANDLE, handle, FILE, FILENAME) 
  2939.  
  2940. X=QUERY(HANDLE, handle, INFO, FORMAT) 
  2941.  
  2942. X=QUERY(HANDLE, handle, INFO, DATASTYLE) 
  2943.  
  2944. X=QUERY(HANDLE, handle, INFO, CHANNELS) 
  2945.  
  2946. X=QUERY(HANDLE, handle, INFO, RATE) 
  2947.  
  2948. X=QUERY(HANDLE, handle, INFO, DATASIZE) 
  2949.  
  2950. X=QUERY(HANDLE, handle, INFO, SAMPLES) 
  2951.  
  2952. X=QUERY(HANDLE, handle, INFO, TIME) 
  2953.  
  2954. X=QUERY(HANDLE, handle, INFO, MEMORY) 
  2955.  
  2956. X=QUERY(HANDLE, handle, INFO, COMMENT) 
  2957.  
  2958. X=QUERY(HANDLE, handle, INFO, BYTEORDER) 
  2959.  
  2960. X=QUERY(HANDLE, handle, AUDIO, VOLUME) 
  2961.  
  2962. X=QUERY(HANDLE, handle, AUDIO, TIME) 
  2963.  
  2964. X=QUERY(HANDLE, handle, AUDIO, COUNT) 
  2965.  
  2966. X=QUERY(HANDLE, handle, AUDIO, MEMORY) 
  2967.  
  2968. X=QUERY(HANDLE, handle, AUDIO, INPUT) 
  2969.  
  2970. X=QUERY(HANDLE, handle, AUDIO, QUALITY) 
  2971.  
  2972. X=QUERY(HANDLE, handle, AUDIO, CHANNELS) 
  2973.  
  2974. X=QUERY(HANDLE, handle, AUDIO, RATE) 
  2975.  
  2976. X=QUERY(HANDLE, handle, AUDIO, OVERWRITE) 
  2977.  
  2978. X=QUERY(HANDLE, handle, AUDIO, MONITOR) 
  2979.  
  2980. X=QUERY(PROPERTIES, ENABLE_MMPM) 
  2981.  
  2982. X=QUERY(PROPERTIES, SHARE_AUDIO) 
  2983.  
  2984. X=QUERY(PROPERTIES, PLAY_16ON8) 
  2985.  
  2986. X=QUERY(PROPERTIES, DEVICE) 
  2987.  
  2988. X=QUERY(PROPERTIES, MEMORY) 
  2989.  
  2990. X=QUERY(PROPERTIES, IGNORE_HEADER_STYLE) 
  2991.  
  2992. X=QUERY(PROPERTIES, REQUIRE_AU_HEADER) 
  2993.  
  2994. X=QUERY(PROPERTIES, FORCE_ULAW) 
  2995.  
  2996. X=QUERY(PROPERTIES, INI_PATH) 
  2997.  
  2998. X=QUERY(PROPERTIES, REXX_STDIN_COLOR) 
  2999.  
  3000. X=QUERY(PROPERTIES, REXX_STDOUT_COLOR) 
  3001.  
  3002. X=QUERY(PROPERTIES, REXX_STDERR_COLOR) 
  3003.  
  3004. X=QUERY(PROPERTIES, REXX_COMMAND_COLOR) 
  3005.  
  3006. X=QUERY(PROPERTIES, REXX_DISPLAY_HISTORY) 
  3007.  
  3008. X=QUERY(PROPERTIES, FOOTNOTES) 
  3009.  
  3010. X=QUERY(PROPERTIES, SAVE_POSITIONS) 
  3011.  
  3012. X=QUERY(PROPERTIES, SAVE_OPENPATH) 
  3013.  
  3014. X=QUERY(PROPERTIES, SAVE_SAVEPATH) 
  3015.  
  3016. X=QUERY(PROPERTIES, PLAY_ON_COMMANDLINE_LOAD) 
  3017.  
  3018. X=QUERY(PROPERTIES, EXIT_AFTER_COMMANDLINE_PLAY) 
  3019.  
  3020. X=QUERY(PROPERTIES, FREE_MEMORY_AFTER_LOADING) 
  3021.  
  3022. X=QUERY(PROPERTIES, ENABLE_QUICK_QUEUEING) 
  3023.  
  3024. X=QUERY(PROPERTIES, AUTO_RATE_ADJUST) 
  3025.  
  3026. X=QUERY(PROPERTIES, UNDO) 
  3027.  
  3028. X=QUERY(PROPERTIES, USE_DISPLAYED_CHANNEL) 
  3029.  
  3030. X=QUERY(PROPERTIES, USE_DISPLAYED_RANGE) 
  3031.  
  3032. X=QUERY(PROPERTIES, EDITOR_INFO) 
  3033.  
  3034. X=QUERY(PROPERTIES, EDITOR_ALL_CHANNELS) 
  3035.  
  3036. X=QUERY(PROPERTIES, EDITOR_DELAY_AUDIO_LOADING) 
  3037.  
  3038. X=QUERY(PROPERTIES, EDITOR_SETUP_AUDIO_AT_PLAY) 
  3039.  
  3040. X=QUERY(PROPERTIES, EDITOR_AUTO_REPEAT) 
  3041.  
  3042. X=QUERY(PROPERTIES, EDITOR_FORMAT_TIME) 
  3043.  
  3044. X=QUERY(PROPERTIES, EDITOR_PLAY_MODE_RANGE) 
  3045.  
  3046. x=QUERY(PMSNDX, VERSION) 
  3047.  
  3048. Returns the current version number. 
  3049.  
  3050. x=QUERY(PMSNDX, REGISTERED) 
  3051.  
  3052. Returns {YES,NO} to indicate whether PMsndX has been registered. 
  3053.  
  3054. x=QUERY(PMSNDX, ERROR_OCCURRED) 
  3055.  
  3056. Returns {YES,NO} indicating whether an error has occurred.  If this is set to 
  3057. YES then the REXX output window will not close when the REXX script has 
  3058. completed execution. 
  3059.  
  3060. x=QUERY(PMSNDX, CLOSE) 
  3061.  
  3062. Returns {YES,NO} indicating whether the REXX script has told PMsndX not to 
  3063. close the REXX output window when the script completes. 
  3064.  
  3065. x=QUERY(PMSNDX, IGNORE_SYNTAX_ERRORS) 
  3066.  
  3067. Returns {YES,NO} indicating whether the PMsndX has been told to ignore errors. 
  3068.  
  3069. x=QUERY(PMSNDX, OUTPUT) 
  3070.  
  3071. Returns {YES,NO} indicating whether the PMsndX commands are echoed in the REXX 
  3072. output window. 
  3073.  
  3074. x=QUERY(PMSNDX, TEST_MODE) 
  3075.  
  3076. Returns {YES,NO} indicating that the PMsndX is in TEST_MODE. 
  3077.  
  3078.  
  3079. ΓòÉΓòÉΓòÉ 2.4.10. Animation Operations ΓòÉΓòÉΓòÉ
  3080.  
  3081. The value returned for all EDIT operations indicate the success of the 
  3082. operation. 
  3083.  
  3084. During the processing of a REXX script, the various dialogs may be 
  3085. automatically opened and the user may wish to "clean up" the screen before 
  3086. completing the rexx script.  A set of controls is provided to allow for user 
  3087. controlled animation of the desktop. 
  3088.  
  3089. x=DISPLAY(ABOUT, {YES, NO}) 
  3090.  
  3091. x=DISPLAY(WELCOME, {YES, NO}) 
  3092.  
  3093. x=DISPLAY(TOOLS, {YES, NO}) 
  3094.  
  3095. x=DISPLAY(TOOLPAGE, {INFO, FORMAT, CHANNELS, AVERAGE, DUPE, FILTER, BANDPASS, 
  3096. LOWPASS, SAMPLE, RATE, SPEED, EFFECT, ECHO, INVERT, REVERSE, VIBRO, VOLUME, 
  3097. FADE, LIMIT, BALANCE}) 
  3098.  
  3099. x=DISPLAY(OPEN, {YES, NO}) 
  3100.  
  3101. x=DISPLAY(PROPERTIES, {YES, NO}) 
  3102.  
  3103. x=DISPLAY(PROPPAGE, {AUDIO, MEMORY, MISC, REXX, STARTUP, PLSNDX, EDSNDX, 
  3104. EDITOR}) 
  3105.  
  3106.  
  3107. ΓòÉΓòÉΓòÉ 2.4.11. REXX return values ΓòÉΓòÉΓòÉ
  3108.  
  3109. Both FUNCTIONS and COMMANDS return error codes in the event that an error 
  3110. occurs when processing the commands.  The error codes are composed of two 8 bit 
  3111. numbers logically ORed together. 
  3112.  
  3113. The upper 8 bits of the return code indicates the command command group which 
  3114. caused the error.  The following table lists the possible values. 
  3115.  
  3116. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3117. ΓöéGroup               ΓöéValue       Γöé
  3118. Γöé                    Γöé            Γöé
  3119. ΓöéNo Error            Γöé0           Γöé
  3120. Γöé                    Γöé            Γöé
  3121. ΓöéUnknown             Γöé0x00000100  Γöé
  3122. Γöé                    Γöé            Γöé
  3123. ΓöéFILE                Γöé0x00000200  Γöé
  3124. Γöé                    Γöé            Γöé
  3125. ΓöéAUDIO               Γöé0x00000300  Γöé
  3126. Γöé                    Γöé            Γöé
  3127. ΓöéPROPERTIES          Γöé0x00000400  Γöé
  3128. Γöé                    Γöé            Γöé
  3129. ΓöéEDIT                Γöé0x00000500  Γöé
  3130. Γöé                    Γöé            Γöé
  3131. ΓöéTOOLS               Γöé0x00000600  Γöé
  3132. Γöé                    Γöé            Γöé
  3133. ΓöéMESSAGE             Γöé0x00000700  Γöé
  3134. Γöé                    Γöé            Γöé
  3135. ΓöéPMSNDX              Γöé0x00000800  Γöé
  3136. Γöé                    Γöé            Γöé
  3137. ΓöéQUERY               Γöé0x00000900  Γöé
  3138. Γöé                    Γöé            Γöé
  3139. ΓöéDISPLAY             Γöé0x00000a00  Γöé
  3140. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3141.  
  3142. The lower 8 bits of the result indicate the reason for the error. The possible 
  3143. values are listed in the following table. 
  3144.  
  3145. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3146. ΓöéError               ΓöéValue       Γöé
  3147. Γöé                    Γöé            Γöé
  3148. ΓöéNo Error            Γöé0           Γöé
  3149. Γöé                    Γöé            Γöé
  3150. ΓöéNOT IMPLEMENTED     Γöé0x00000001  Γöé
  3151. Γöé                    Γöé            Γöé
  3152. ΓöéBAD VALUE           Γöé0x00000002  Γöé
  3153. Γöé                    Γöé            Γöé
  3154. ΓöéUNKNOWN PARAMETER   Γöé0x00000003  Γöé
  3155. Γöé                    Γöé            Γöé
  3156. ΓöéUNKNOWN KEYWORD     Γöé0x00000004  Γöé
  3157. Γöé                    Γöé            Γöé
  3158. ΓöéUNKNOWN COMMAND     Γöé0x00000005  Γöé
  3159. Γöé                    Γöé            Γöé
  3160. ΓöéUNKNOWN FUNCTION    Γöé0x00000006  Γöé
  3161. Γöé                    Γöé            Γöé
  3162. ΓöéMISSING HANDLE      Γöé0x0000000e  Γöé
  3163. Γöé                    Γöé            Γöé
  3164. ΓöéINVALID HANDLE      Γöé0x0000000f  Γöé
  3165. Γöé                    Γöé            Γöé
  3166. ΓöéMISSING PARAMETER   Γöé0x00000007  Γöé
  3167. Γöé                    Γöé            Γöé
  3168. ΓöéMISSING KEYWORD     Γöé0x00000008  Γöé
  3169. Γöé                    Γöé            Γöé
  3170. ΓöéMISSING COMMAND     Γöé0X00000009  Γöé
  3171. Γöé                    Γöé            Γöé
  3172. ΓöéMISSING FUNCTION    Γöé0X0000000a  Γöé
  3173. Γöé                    Γöé            Γöé
  3174. ΓöéUNBALANCED KEYWORD  Γöé0x0000000b  Γöé
  3175. Γöé                    Γöé            Γöé
  3176. ΓöéEXTRA DATA          Γöé0x0000000c  Γöé
  3177. Γöé                    Γöé            Γöé
  3178. ΓöéDUPLICATE KEYWORD   Γöé0x0000000d  Γöé
  3179. Γöé                    Γöé            Γöé
  3180. ΓöéINVALID PATH        Γöé0x00000010  Γöé
  3181. Γöé                    Γöé            Γöé
  3182. ΓöéBAD FILE NAME       Γöé0x00000011  Γöé
  3183. Γöé                    Γöé            Γöé
  3184. ΓöéCANNOT CREATE NEW   Γöé0x00000015  Γöé
  3185. ΓöéFILE                Γöé            Γöé
  3186. Γöé                    Γöé            Γöé
  3187. ΓöéNO SAMPLES          Γöé0x00000012  Γöé
  3188. Γöé                    Γöé            Γöé
  3189. ΓöéCANNOT PLAYBACK     Γöé0x00000013  Γöé
  3190. Γöé                    Γöé            Γöé
  3191. ΓöéCANNOT RECORD       Γöé0x00000014  Γöé
  3192. Γöé                    Γöé            Γöé
  3193. ΓöéNO MMPM INSTALLED   Γöé0x00000020  Γöé
  3194. Γöé                    Γöé            Γöé
  3195. ΓöéMMPM NOT ENABLED    Γöé0x00000021  Γöé
  3196. Γöé                    Γöé            Γöé
  3197. ΓöéFREE MEMORY NOT     Γöé0x00000022  Γöé
  3198. ΓöéENABLED             Γöé            Γöé
  3199. Γöé                    Γöé            Γöé
  3200. ΓöéGENERAL FUNCTION    Γöé0x00000030  Γöé
  3201. ΓöéERROR               Γöé            Γöé
  3202. Γöé                    Γöé            Γöé
  3203. ΓöéGENERAL COMMAND     Γöé0x00000031  Γöé
  3204. ΓöéERROR               Γöé            Γöé
  3205. Γöé                    Γöé            Γöé
  3206. ΓöéPROGRAM NOT         Γöé0x000000ff  Γöé
  3207. ΓöéREGISTERED          Γöé            Γöé
  3208. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3209.  
  3210.  
  3211. ΓòÉΓòÉΓòÉ 3. PlSndX ΓòÉΓòÉΓòÉ
  3212.  
  3213.                                    PMsndX 2.22
  3214.                                        by
  3215.                                 William S. Hiles
  3216.                              copyright WiSHware Inc.
  3217.  
  3218. PlSndX is part of the family of programs grouped under the name PMsndX  Plsndx 
  3219. has been designed to utilize the capability developed in EdSndX for loading and 
  3220. saving many formats. This tool has been optimized to provide options which let 
  3221. the program minimize memory requirements for playback and has the same 
  3222. drag/drop features of the EdSndX program. 
  3223.  
  3224. Many of the features of PlSndX will seem familiar to anyone using EdSndX 
  3225. because they share the same libraries for most of the code.  The advantage to 
  3226. this is that any fixes made to either program are automatically reflected in 
  3227. the other program. 
  3228.  
  3229. PlSndX is not intended to provide any editing capabilities but does have the 
  3230. capability to save a file once loaded. This feature has been retained to allow 
  3231. a file to be saved in any of the supported formats after the file has been 
  3232. loaded from another application.  Such an example is the IBM WebExplorer where 
  3233. a sound file may be brought down over the net and played with PlSndX.  If the 
  3234. Free memory after loading feature has not been enabled, PlSndX can be used to 
  3235. save the sample to disk in any format that the operator chooses. 
  3236.  
  3237. A number of features of PlSndX sets it apart from other sound players.  These 
  3238. include the ability to automatically detects if another copy of the player is 
  3239. running and saves resources by communicating with the running copy of PlSndX to 
  3240. load the files, double buffering for quick playback, and automatic rate 
  3241. adjustment to ensure proper playback. 
  3242.  
  3243.  
  3244. ΓòÉΓòÉΓòÉ 3.1. Control Panel ΓòÉΓòÉΓòÉ
  3245.  
  3246. PlSndX utilizes the same concept as EdSndX in that it has a control panel that 
  3247. serves as the point of control for the program.  From this control panel, the 
  3248. operator may control playback of a sample, volume for the audio system, or 
  3249. launch windows to utilize features of the program.  The control panel for 
  3250. PlSndX is shown below. 
  3251.  
  3252. The controls of interest for PlsndX are: 
  3253.  
  3254.  System Menu     The system menu for the control panel 
  3255.  Stop button     Stop audio playback 
  3256.  Play button     Start audio playback 
  3257.  Rewind button   Rewind the current play position 
  3258.  Volume control  Adjust the playback volume 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ 3.2. System Menu ΓòÉΓòÉΓòÉ
  3262.  
  3263. Like any other OS/2 program, PlSndX provides a system menu which is used to 
  3264. access the standard controls for manipulating the application on the desktop. 
  3265. The following figure illustrates the system menu for PlSndX. 
  3266.  
  3267. Notice that the Open... and Save as... items are placed in the system menu 
  3268. because PlSndX does not have a menu bar for these items. 
  3269.  
  3270. The menu items provided in the system menu are: 
  3271.  
  3272.  Restore        Restore the windows after being minimized 
  3273.  Move           Move the control window 
  3274.  Size           Resize the main control panel 
  3275.  Minimize       Minimize all of the windows of EdSndX to an icon 
  3276.  Close          Close the all windows and exit 
  3277.  Help           Bring up the help system 
  3278.  Properties     Change program operational parameters 
  3279.  Open...        Read a file from disk 
  3280.  Save as...     Save a file to disk* 
  3281.  
  3282.  Note:  * The Save as... menu item is disabled whenever a sample has not been 
  3283.         loaded or when it has been discarded because the Free memory after 
  3284.         loading option has been selected 
  3285.  
  3286.  
  3287. ΓòÉΓòÉΓòÉ 3.2.1. Resizing the control panel ΓòÉΓòÉΓòÉ
  3288.  
  3289. PlSndX provides a border for resizing the control panel. However, unlike 
  3290. EdSndX, the buttons for the control panel will not resize to fit the window. 
  3291. The buttons are bitmaps which are animated during playback.  As a result, large 
  3292. bitmaps would take more time and processor resources to animate so the size of 
  3293. the buttons has been fixed to be mathematically proportional to the default 
  3294. font size for the window.  The buttons are twice the maximum height of the 
  3295. font.  The volume button is set to be the maximum height of the font plus about 
  3296. 5 pixels in either direction. 
  3297.  
  3298.  
  3299. ΓòÉΓòÉΓòÉ 3.2.2. Drag and Drop ΓòÉΓòÉΓòÉ
  3300.  
  3301. The control panel is also the place to receive drag/drop operations.  Such 
  3302. operations are accomplished by dragging a sound file to the control panel and 
  3303. dropping it on anywhere within the border of the panel and below the titlebar. 
  3304. PlSndX will automatically load the sample into memory and load the MMPM buffers 
  3305. in preparation for playback. See drag/drop for more information on  performing 
  3306. drag/drop operations. 
  3307.  
  3308.  
  3309. ΓòÉΓòÉΓòÉ 3.2.3. Buttons ΓòÉΓòÉΓòÉ
  3310.  
  3311. PlSndX provides the minimum size application to provide the controls necessary 
  3312. to provide playback of a sample.  It does not provide a record button.  The 
  3313. buttons are generally animated such that during playback, the face of the 
  3314. buttons moves to indicate the action being performed. 
  3315.  
  3316.  
  3317. ΓòÉΓòÉΓòÉ 3.2.3.1. Stop ΓòÉΓòÉΓòÉ
  3318.  
  3319. The Stop button is the one to the farthest left on the control panel and is 
  3320. used to stop playback.  If playback has already been stopped, this button is 
  3321. disabled as indicated by a grayed out look to the button. 
  3322.  
  3323. PlSndx does not automatically rewind a sample when the stop button is pressed. 
  3324.  
  3325.  
  3326. ΓòÉΓòÉΓòÉ 3.2.3.2. Play ΓòÉΓòÉΓòÉ
  3327.  
  3328. The play button is the primary point of action for PlSndX. The play button is 
  3329. an animated button which displays a moving arrow during playback.  It also 
  3330. overlays the current time index on the playback button to provide a reference 
  3331. for how much time has elapsed in the sample. A sample can be played in a number 
  3332. of different ways. 
  3333.  
  3334. A sample may be played by loading it into memory through either the open dialog 
  3335. from the system menu or through drag/drop operations and then pressing the play 
  3336. button after the buffers have been loaded. 
  3337.  
  3338. If the Play on command line load property has been selected, the sample can be 
  3339. played immediately after the buffers have been set up when the sample is loaded 
  3340. from the command line.  This is one of the primary uses of PlSndX in that it 
  3341. can load a sample from the command line and play it immediately.  This can also 
  3342. be combined with the Exit after command line play property to automatically 
  3343. terminate PlSndX after it has played all samples on the command line.  This is 
  3344. particularly useful when the program is used to play samples that are 
  3345. downloaded through an internet connection through a WEB explorer. 
  3346.  
  3347. When multiple file selections are made or when multiple files are queued up for 
  3348. playback through either the command line or pipes, the file must play in its 
  3349. entirety before the next file is loaded.  If playback is stopped, playback will 
  3350. continue from the point where it left off and the sample will be played in its 
  3351. entirety before moving on to the next file.  When the repeat option is enabled, 
  3352. PlSndX will not move on to the next sample until the repeat feature is 
  3353. disabled. 
  3354.  
  3355.  
  3356. ΓòÉΓòÉΓòÉ 3.2.3.3. Rewind ΓòÉΓòÉΓòÉ
  3357.  
  3358. PlSndX does not automatically rewind a sample after playback has been stopped. 
  3359. When playback is stopped, the rewind button will be enabled so that the 
  3360. position of playback may be started at the beginning. 
  3361.  
  3362.  
  3363. ΓòÉΓòÉΓòÉ 3.2.3.4. Volume ΓòÉΓòÉΓòÉ
  3364.  
  3365. The volume control for PlSndX is identical to that of EdSndX.  The volume 
  3366. control is a sliding bar which sets the volume to a percentage of the maximum 
  3367. volume for the audio device.  The operation of the volume control is similar to 
  3368. a standard slider except that it does not have an associated button.  Rather, 
  3369. it is like an analog volume control such that the slider moves to the right and 
  3370. left using the mouse and the width of the slider indicates the volume. 
  3371. Additionally, the actual percentage of the volume is indicated in the display 
  3372. for convenience. 
  3373.  
  3374. The slider may be moved using the mouse button or the normal keys associated 
  3375. with scroll bars.  By selecting the area near the edge of the sliding portion 
  3376. of the control, the slider can be captured and the mouse can be used to drag 
  3377. the volume to the desired position.  If playback is occurring, the effect is 
  3378. immediately heard.  The area to the left or right of the slider edge may also 
  3379. be selected with the first mouse button to move the slider one percent up or 
  3380. down depending on the position that is selected.  Holding the mouse down causes 
  3381. the slider to increase at a rate of about 1 percent per tenth of a second. 
  3382. Finally, the second mouse button may be used to move the slider to a specific 
  3383. position quickly. 
  3384.  
  3385.  
  3386. ΓòÉΓòÉΓòÉ 4. Drag and Drop ΓòÉΓòÉΓòÉ
  3387.  
  3388. All PMsndX programs supports Drag and Drop of all sound files other than the 
  3389. RAW formats and performs a COPY operation when a file is dropped onto any of 
  3390. the PMsndX programs. To use this capability, the sound samples must be stored 
  3391. in a file.  If an application attempts to transfer data without specifying a 
  3392. filename, PMsndX will request that the application RENDER the file before 
  3393. transferring it to PMsndX.  The request for rendering the file before transfer 
  3394. is transparent to the user, but not all applications are capable of rendering 
  3395. and may not be able to transfer the file to EdSndX. 
  3396.  
  3397. To drag a sample to PMsndX, use the second mouse button (usually the right 
  3398. mouse button) to select the file.  While holding the second mouse button down, 
  3399. move the mouse pointer over the PMsndX control panel and lift the mouse button. 
  3400. PMsndX will then attempt to load the file using the same rules as the Open 
  3401. dialog function uses. 
  3402.  
  3403.  
  3404. ΓòÉΓòÉΓòÉ 5. Properties ΓòÉΓòÉΓòÉ
  3405.  
  3406. PMsndX can store a number of properties (user options) that users commonly set 
  3407. in a file called pmsndx.ini.  The location of this file may be specified only 
  3408. if PMsndX is registered; otherwise, the file will be located wherever the 
  3409. executable program is started. From the PROPERTIES dialog box the user may 
  3410. select to save the current window positions, open and save file path, maximum 
  3411. memory, MMPM/2 options, and REXX options. 
  3412.  
  3413. After the user has set all of the information in the PROPERTIES dialog box, the 
  3414. ACCEPT button must be used to save the changes. When this button is pressed, 
  3415. the changes are applied. 
  3416.  
  3417. Note:  Changes to the maximum memory will be checked when a new sample is 
  3418.        loaded or when an operation that requires memory is attempted. 
  3419.  
  3420.  To restore the PROPERTIES box to the settings the last time the APPLY button 
  3421.  was pressed, the CANCEL button can be used.  All information entered by the 
  3422.  user is cleared and the PROPERTIES remain unchanged. 
  3423.  
  3424.  The window positions and file paths are maintained as long as PMsndX is 
  3425.  running.  When PMsndX is terminated, it will not save the current positions 
  3426.  and paths for file operations unless the boxes are checked in the PROPERTIES 
  3427.  dialog box.  Selecting these buttons has no effect on remembering the current 
  3428.  window positions during a single session; rather, they only affect saving the 
  3429.  information between sessions. 
  3430.  
  3431.  Note:  The information in the PROPERTIES dialog box is only saved when the 
  3432.         program is terminated. 
  3433.  
  3434.  Finally, to remove the Properties dialog box from the screen, select close 
  3435.  from the system menu of the properties dialog or double click on the system 
  3436.  menu icon for the properties dialog.  If the APPLY button has not been 
  3437.  pressed, any changes made to the display will be lost. 
  3438.  
  3439.  
  3440. ΓòÉΓòÉΓòÉ 5.1. Registration Properties ΓòÉΓòÉΓòÉ
  3441.  
  3442.  Everyone has their own opinion as to how shareware should work.  The initial 
  3443. releases of PMsndX utilized a method which was considered "crippleware" because 
  3444. some of the features were disabled if the program was not registered. As a 
  3445. result I received a lot of comments about how shareware should be and I 
  3446. patiently listened till I figured out a way to make most of the people happy. 
  3447. Of course, none of this matters at all if you have registered the program and 
  3448. all of the buttons will be greyed out. 
  3449.  
  3450. My solution is not to force anything on you so you get to choose what form of 
  3451. limitation is provided by the program. By default it is the same as all 
  3452. previous releases.  Of course, there is one camp of users that will not be 
  3453. happy with any of the options; namely, the ones that feel that there should be 
  3454. no limitations because people will pay if they really like the program.  Sorry 
  3455. folks, but out of the hundreds of people who have contacted me for 
  3456. registrations, only about 4 have offered to pay so I don't think that theory 
  3457. works. 
  3458.  
  3459. Your first option is the standard "crippleware" in which features of the 
  3460. program are disabled.  When this option is selected, a number of features are 
  3461. disabled.  Namely, you cannot apply tools to ranges on the editor, you cannot 
  3462. apply tools to selected channels, you cannot run REXX scripts, you can only 
  3463. load and save AU and WAV formatted files, and the UNDO feature is disabled. 
  3464. This is no different than early (prior to 2.16) versions of the program.  This 
  3465. option applies to all of the programs in the PMsndX family. 
  3466.  
  3467. Your second option is called "NAGware" in which all of the features of the 
  3468. program are enabled but the program constantly NAGGs you about registering it. 
  3469. My incarnation of this approach displays a NAG box about ever 2.5 minutes and 
  3470. it is system modal.  This means that you cannot do anything with your windows 
  3471. until you press the OK button. It also displays the ABOUT box to let you access 
  3472. the registration also.  Since plsndx.exe does not have an ABOUT dialog to 
  3473. display, it reverts to "crippleware" when NAG has been chosen. 
  3474.  
  3475. And finally, your third option is called "NOSAVEware" in which all of the 
  3476. features of the program are enabled, but you just cannot save anything you do. 
  3477. This should be fine for anyone who just wants to play audio sounds in any 
  3478. format. 
  3479.  
  3480. Now, you might be thinking, "Hey, what if I set it for NAG when it starts, and 
  3481. then change it to CRIPPLE during a session?".  Well, the result is that it will 
  3482. continue to NAG until you exit the session.  This is because the selection does 
  3483. not take effect until the program has been exited and restarted.  Oh, but wait, 
  3484. what if you figure out the bits that are set in the .INI file and modify them 
  3485. with an INI editor?  Well, that is an easy one.  When the program starts up, it 
  3486. checks to see if the registration information is to be found and then if the 
  3487. data for either CRIPPLE, NAG, or SAVE has not been set, it reverts back to 
  3488. CRIPPLE. 
  3489.  
  3490. Well, anyhow, you get the picture.  You can choose the method that suits you 
  3491. best, but I urge you to just go ahead and register the darn thing and be done 
  3492. with it. 
  3493.  
  3494.  
  3495. ΓòÉΓòÉΓòÉ 5.2. Audio Properties ΓòÉΓòÉΓòÉ
  3496.  
  3497. Enable MMPM/2 Support 
  3498.  
  3499. PMsndX supports playing samples from memory directly to the MMPM/2 digital 
  3500. audio device of OS/2.  This allows samples to be played without having to save 
  3501. the sample to disk in the native .WAV format.  The PROPERTIES dialog box 
  3502. provides controls for disabling or enabling MMPM/2 support and for controlling 
  3503. the actions taken when a file is loaded Additionally, the digital audio device 
  3504. may be specified. 
  3505.  
  3506. If the MMPM/2 capabilities of the program are not needed or if MMPM/2 support 
  3507. is not installed on a particular system, the MMPM/2 may be disabled from the 
  3508. PROPERTIES dialog box.  By disabling the MMPM/2 support, the button on the main 
  3509. control panel for AUDIO is disabled.  By default the program will enable MMPM/2 
  3510. support.  If MMPM/2 is available but disabled and the AUDIO button is selected, 
  3511. a message is displayed to the user to indicate that the setting should be 
  3512. turned on from the PROPERTIES dialog box. 
  3513.  
  3514. The controls for MMPM/2 and the ability to play the "playlist" using MMPM/2 
  3515. utilize the files SW.DLL and MDM.DLL.  These are part of the standard MMPM/2 
  3516. distribution and must be present in the DLL path for the MMPM/2 portion of this 
  3517. program to operate.  The MMPM/2 support is not linked into the executable of 
  3518. this program.  Rather, it is only loaded when the user enables it.  This allows 
  3519. the program to run on machines which do not have MMPM/2 installed. 
  3520.  
  3521. The MMPM/2 functionality of PMsndX has been implemented to share the audio 
  3522. device with other programs on the system. However, by disabling the MMPM/2 
  3523. support, the audio device is freed up completely. 
  3524.  
  3525. Share audio device 
  3526.  
  3527. The audio device can be shared with the system such that while a sound is 
  3528. playing, it may be interrupted by system sounds. Sharing the audio device 
  3529. allows sounds to interrupt playback but may be desirable at all times.  When 
  3530. the audio sharing is disabled, system sounds will come out of the standard 
  3531. speaker in the form of a beep. 
  3532.  
  3533. Play 16 bits on 8 bit audio 
  3534.  
  3535. The Play 16 bits on 8 bit audio option allows 16 bit samples to be played on 8 
  3536. bit audio adaptor.  By default, whenever any PMsndX program is started, it will 
  3537. interrogate the audio device to determine the capabilities and automatically 
  3538. play 16 bit samples on 8 bit adapters if the adapter does not support 16 bit 
  3539. playback.  This feature can be overridden by setting or clearing the checkbox; 
  3540. however, the changes made to this box are not saved between sessions and will 
  3541. automatically be set whenever the program is started.  This box can be set and 
  3542. cleared to allow the user to determine the overall effect of the setting on 
  3543. audio playback.  Although most samples will produce square waves (resulting in 
  3544. noisy results), some will play (most notably .au files).  Although the data is 
  3545. sent to the audio device in 8 bit format, it is still maintained in its 
  3546. original format and all manipulations including saving the file are performed 
  3547. in the original size of the file. 
  3548.  
  3549. Note:  When this option is selected, all files are played as 8 bit samples 
  3550.        regardless of what is supported by the audio adapter.  Use this option 
  3551.        only if you have an 8 bit card! 
  3552.  
  3553.  EOF detection zone 
  3554.  
  3555.  When playing a file, PMsndX must detect when the cuepoint reported by MMPM/2 
  3556.  is near the end of the file so that it can rewind it.  Unfortunately, the 
  3557.  cuepoint must be converted to an index value and then compared to the length 
  3558.  of a sample and the roundoff of that conversion creates a window or zone which 
  3559.  the cuepoint cannot exist.  To compensate for this, an End Of File detection 
  3560.  zone is provided which is used to determine if the playback needs to be 
  3561.  rewound.  This zone must be set sufficiently small so that playback is not 
  3562.  rewound whenever playback is stopped. A default value of 300 has proven to be 
  3563.  a good zone but the value can be adjusted by the user if necessary. The range 
  3564.  of values for this settings is between 0 and 32767. 
  3565.  
  3566.  Note:  Playback does not stop till either the stop button or the MMPM/2 system 
  3567.         reports an end of file condition regardless of this setting.  This 
  3568.         setting only affects the behavior of playback when playback is 
  3569.         restarted once the end of file has been reached. 
  3570.  
  3571.  Device 
  3572.  
  3573.  Obviously not every machine has the same digital audio device.  PMsndX 
  3574.  provides a means to use a different audio device than the default digital 
  3575.  audio interface.  By default the device name is Waveaudio01.  Any Waveaudio 
  3576.  device may be selected by entering the device name in the Device entry field. 
  3577.  
  3578.  Note:  Setting the audio device to an invalid string will cause random errors. 
  3579.         The worst case is the PMsndX will crash whenever the AUDIO dialog is 
  3580.         opened.  To reset the audio device back to Waveaudio01, clear this 
  3581.         field and then exit PMsndX.  When PMsndX is reloaded, it will reset the 
  3582.         device to Waveaudio01. 
  3583.  
  3584.  
  3585. ΓòÉΓòÉΓòÉ 5.3. Memory Properties ΓòÉΓòÉΓòÉ
  3586.  
  3587. Auto 
  3588.  
  3589. PMsndX takes advantage of OS/2's advanced memory management facilities.  When 
  3590. the program is started, it only takes up the memory required for the executable 
  3591. to load.  PMsndX then only requests memory from OS/2 when an operation requires 
  3592. storage space for a sample.  The maximum memory limitation is provided to avoid 
  3593. overcommitting the memory in the system and creating a large swap file. 
  3594.  
  3595. Memory is primarily used to hold samples for operations; however, whenever the 
  3596. sound is manipulated in such a way that either the output has a different 
  3597. number of samples or the operation requires the samples to remain in tact 
  3598. during the entire operation, additional memory is used to hold the new data. 
  3599. Once the operation has been completed, the memory is freed unless the UNDO 
  3600. feature is enabled. When setting the maximum memory, the user must take into 
  3601. account the size of the data in memory as well as the size of the results of 
  3602. any operations. With the exception of Sampling Rate changes, the maximum memory 
  3603. requirements will not exceed twice the size of a sample.  When changing rate, 
  3604. the size is dependent on the new sampling rate.  If the new rate is higher than 
  3605. the current rate, the memory requirements will increase.  If the new rate is 
  3606. lower than the original rate, the memory requirements will shrink. 
  3607.  
  3608. If the user selects the AUTO mode for memory (the default), PMsndX will request 
  3609. as much memory as OS/2 will give it. 
  3610.  
  3611. If the user chooses to limit the memory to a specific value, the AUTO checkbox 
  3612. can be turned off and a value may be entered.  Since the minimum OS/2 memory 
  3613. block size is 4096 (4k) bytes, the user may specify the number of 4k pages for 
  3614. the limit.  The user may either use the up and down arrows to increment or 
  3615. decrement the amount of memory or may place the cursor in the window and type 
  3616. the specific value. 
  3617.  
  3618.  
  3619. ΓòÉΓòÉΓòÉ 5.4. Misc Properties ΓòÉΓòÉΓòÉ
  3620.  
  3621. Ignore unknown header blocks 
  3622.  
  3623. Many sound formats contain optional header blocks and user defined header 
  3624. blocks which PMsndX may not support.  By default, PMsndX will warn the user 
  3625. when it encounters an unsupported header block.  By selecting this option, 
  3626. PMsndX will not display the warning. 
  3627.  
  3628. Note:  When the unsupported header block warning is displayed, PMsndX provides 
  3629.        the option of disabling the warning by selecting YES.  This is not the 
  3630.        same as the Ignore unknown header blocks option and only disables the 
  3631.        warning for the current session of PMsndX. 
  3632.  
  3633.  Require header in .au files 
  3634.  
  3635.  Samples taken from a Sun usually contain a header but there are files which do 
  3636.  not.  Typically a Sun file will not contain a header if the sample is recorded 
  3637.  from the audio device as if it were a file (e.g. "cat < /dev/audio > 
  3638.  sample.au").  By default, PMsndX will recognize the extension of .au and force 
  3639.  a headerless file to be loaded as a sun file with a sampling rate of 8012 Hz. 
  3640.  When this option is selected, headerless Sun files must be loaded using the 
  3641.  format RAW .ul format.  This method for loading headerless Sun files allows 
  3642.  the user to specify the sampling rate for the file. 
  3643.  
  3644.  Force all .AU to ULaw 
  3645.  
  3646.  PMsndX is capable of loading and saving .AU files formatted with ULAW, LINEAR 
  3647.  8 (signed 8 bit), and LINEAR 16 (signed 16 bit) samples.  Since the ULAW 
  3648.  format is a lossy compression technique, it is best to save data in its native 
  3649.  8 or 16 bit format.  Some machines cannot play .AU files unless they are 
  3650.  stored in ULaw format and PMsndX has settings which allow the user to control 
  3651.  the action taken when a file is saved which is not ULaw. 
  3652.  
  3653.  The Force all .AU to ULaw setting is a tri-state checkbox. When the box is 
  3654.  cleared, PMsndX will save the data in the best format to match the current 
  3655.  format.  When the button is in the checked state (indicated by a checkmark in 
  3656.  the box), PMsndX will always save the data in ULaw format regardless of the 
  3657.  current format.  When the box is set in the intermediate state (a grayed out 
  3658.  box), PMsndX will present the user with the following message: 
  3659.  
  3660.  The current data format is not ULAW.  The .AU file format supports this data 
  3661.  type; however, some systems only support the ULAW format. 
  3662.  
  3663.  At that time, the user may select to either force the file to become ULaw or 
  3664.  to allow PMsndX to save in the most accurate format for that data. 
  3665.  
  3666.  If you find that a .AU sample cannot be played on another platform and results 
  3667.  in noise or an error, try saving the data in the ULaw format to correct the 
  3668.  problem. 
  3669.  
  3670.  Location of .INI 
  3671.  
  3672.  By default, the file pmsndx.ini is stored at the location of the executable 
  3673.  program.  However, this location may be changed by modifying this field.  The 
  3674.  path is tested for validity when the parameters are applied; and, if the path 
  3675.  is found to be invalid, and error is displayed and the current path is left 
  3676.  unchanged. If the path is blank, the default path will be restored. 
  3677.  
  3678.  Note:  This option is only valid when the program is registered.  The data for 
  3679.         the path to the pmsndx.ini file is stored in the os2.ini file which is 
  3680.         only modified if the program is registered to prevent storing data in 
  3681.         the os2.ini when a user is just testing out the program. 
  3682.  
  3683.  
  3684. ΓòÉΓòÉΓòÉ 5.5. REXX Properties ΓòÉΓòÉΓòÉ
  3685.  
  3686. STDIN color 
  3687.  
  3688. This defines the color of text read from STDIN in the REXX output window.  By 
  3689. default, this is set to BLACK. 
  3690.  
  3691. STDOUT color 
  3692.  
  3693. This defines the color of text written to STDOUT in the REXX output window.  By 
  3694. default, this is set to BLACK. 
  3695.  
  3696. STDERR color 
  3697.  
  3698. This defines the color of text written to STDERR in the REXX output window.  By 
  3699. default, this is set to RED. 
  3700.  
  3701. COMMAND color 
  3702.  
  3703. This defines the color of the PMsndX commands written in the REXX output 
  3704. window.  By default, this is set to GREEN. 
  3705.  
  3706. REXX display history 
  3707.  
  3708. Setting the number in the entry field for this item modifies the number of 
  3709. lines maintained by the REXX output window and may take on values between 64 
  3710. and 0x7fff.  The default is 64 Changes made to this value will be used on 
  3711. successive REXX command scripts.  Each line of REXX output reserves 256 
  3712. characters of data and as a result, the number of rexx lines maintained for 
  3713. history impacts the memory requirements of the program while REXX is running. 
  3714.  
  3715. Note:  Changes to the REXX display history parameter does not take effect till 
  3716.        the next command script.  (i.e. If a REXX output window is open when 
  3717.        this parameter is changed, the number of lines currently held is not 
  3718.        changed.) 
  3719.  
  3720.  
  3721. ΓòÉΓòÉΓòÉ 5.6. Mapping Properties ΓòÉΓòÉΓòÉ
  3722.  
  3723. The PMsndX family of programs supports a fairly large number of formats and the 
  3724. world is full of audio files with different extensions and names.  The problem 
  3725. is that not all formats have self identifying headers and as a result, you may 
  3726. be constantly having to tell the program what the format is for the file. 
  3727.  
  3728. Well, starting with version 2.16, you can add your own file extensions to the 
  3729. program and map them to any of the supported formats.  You cannot remap the 
  3730. extensions that are already built into the program, but you can add your own. 
  3731.  
  3732. To add an extension, just type the new extension in the Extension box in the 
  3733. format of a period (.) followed by whatever extension you use.  It is not 
  3734. limited to 3 characters but it must start with a period and have no other 
  3735. periods in it. 
  3736.  
  3737. Now that you have typed a new extension the ADD button will be enabled (after 
  3738. you type at least two characters) and you need to select a known format from 
  3739. the Format list. 
  3740.  
  3741. Finally, you just need to press ADD to add it to the list.  This information 
  3742. will be saved between sessions so the next time you start the program, it will 
  3743. remember your new extensions.  The data is stored in your .INI file so if you 
  3744. delete the .INI file, you will lose this information. 
  3745.  
  3746. But there is more.  You can also change any of the user extension and type 
  3747. pairs by pulling down the list and selecting a user extension, selecting a 
  3748. different format, and pressing the CHANGE button. 
  3749.  
  3750. And finally, if you just want to delete a user defined extension, select it 
  3751. from the pulldown list and press the DELETE button. 
  3752.  
  3753. There is not much more to it.  Just remember that you cannot delete, add, or 
  3754. change any of the built in extensions that come with the program.  I 
  3755. purposefully coded this limitation into the program so that there would be some 
  3756. consistency in the names that it supports.  These are common names that have 
  3757. been supported by SOX and other programs and have become fairly standard 
  3758. extensions.  Also remember that even if you load a file with a user defined 
  3759. extension, if it has a header, the program will try to figure out its type 
  3760. before loading it.  The only exception to this is the case in which the user 
  3761. defined extension is associated with a RAW file type in which case the data 
  3762. (including the header) is interpreted as you have specified. 
  3763.  
  3764.  
  3765. ΓòÉΓòÉΓòÉ 5.7. External File Filter Properties ΓòÉΓòÉΓòÉ
  3766.  
  3767. After receiving numerous requests to add various formats, I have decided to add 
  3768. an user definable filter mechanism. Rather than try to implement every file 
  3769. format that people can come up with, I have just defined the method for a 
  3770. program to send data to and receive data from PMsndX. One ofthe significant 
  3771. reasons for this change in direction is due to the overwhelming number of sound 
  3772. formats that are cropping for special applications like speech compression or 
  3773. compression based on a specific data type.  It would be difficult for me to 
  3774. implement all of them and do it well without using example code.  This would 
  3775. introduce copyright problems with the use of someone elses code.  User provided 
  3776. file filters essentially allows the user to utilize the editing features of the 
  3777. program with any format they can define. 
  3778.  
  3779. The external file filters are essentially executable programs which are capable 
  3780. of converting data from one format to RIFF format and vice versa.  The filters 
  3781. must be written to accept data process the data through STDIN/STDOUT. Since the 
  3782. process for conversion to and from RIFF format may not be handled by a single 
  3783. program, different programs can be provided for input and output.  These are 
  3784. associated with a specific file extension so that when a user specifies a file 
  3785. with the extension the appropriate filter is executed. 
  3786.  
  3787. One last note.  Why did I choose the RIFF format for the filters?  The WAVE 
  3788. format is a subset of the RIFF format and is also the native format for most PC 
  3789. operating systems including OS/2.  This increases the liklihood that the 
  3790. filters can be used for more than just this program.  It also increases the 
  3791. liklihood that a program has already been written and modifications to make it 
  3792. work as a filter may be minimal. 
  3793.  
  3794. Now that you know the reason, you need to know how to enter the data and how to 
  3795. write the filter.  I will start with the input fields first. 
  3796.  
  3797. Extension 
  3798.  
  3799. Like mapping, the external file filters depend on a filename extension to 
  3800. determine which filter to use to load a particular file. The filter can be of 
  3801. any length, and should begin with a period.  If the extension entered is unique 
  3802. (i.e. not in the currently recognized extension list), the ADD button will be 
  3803. enabled.  If it is identical to an existing filter, then the DELETE and CHANGE 
  3804. buttons will be enabled.  Existing file extensions can be selected by using the 
  3805. pulldown list. 
  3806.  
  3807. Protocol 
  3808.  
  3809. There are three methods for exchanging data with the external file filters for 
  3810. either input or output.  The filter methods are selected by using the pulldown 
  3811. list and selecting the desired format. 
  3812.  
  3813. For input (i.e. reading data from a file), the following protocols apply. 
  3814.  
  3815.  PIPE: Formatted data The specified file is opened and copied to a PIPE which 
  3816.                 is provided to the filter as STDIN.  The filter is exptected to 
  3817.                 write the data to STDOUT in RIFF format. 
  3818.  PIPE: RAW 8 bit data The specified file is opened and copiedto a PIPE which is 
  3819.                 provided to the filter as STDIN.  The filter is expected to 
  3820.                 write the data to STDOUT as RAW 8 bit PCM data.  When this 
  3821.                 method is selected, a popup window will be displayed to request 
  3822.                 the necessary parameters for interpreting the data. 
  3823.  PIPE: RAW 16 bit data The specified file is opened and copiedto a PIPE which 
  3824.                 is provided to the filter as STDIN.  The filter is expected to 
  3825.                 write the data to STDOUT as RAW 16 bit PCM data.  When this 
  3826.                 method is selected, a popup window will be displayed to request 
  3827.                 the necessary parameters for interpreting the data. 
  3828.  
  3829.  For output (i.e. writing data to a file), the following protocols apply. 
  3830.  
  3831.  PIPE: Formatted data The data is written to the filter through STDIN in RIFF 
  3832.                 format and the filter is expected to send the output to STDOUT. 
  3833.                 The data will be written byte-by-byte to the user specified 
  3834.                 filename. 
  3835.  PIPE: RAW 8 bit data The data is written to the filter through STDIN in RAW 8 
  3836.                 bit PCM format and the filter is expected to send the output to 
  3837.                 the file specified as an argument to the filter. 
  3838.  PIPE: RAW 16 bit data The data is written to the filter through STDIN in RAW 
  3839.                 16 bit PCM format and the filter is expected to send the output 
  3840.                 to the file specified as an argument to the filter. 
  3841.  
  3842.  Input filter 
  3843.  
  3844.  This entry field is used to specify the name and path to the external file 
  3845.  filter used for reading a file. This should be a fully qualified file path to 
  3846.  an executable program or executable script.  The filter path may be typed 
  3847.  directly or a standard file dialog box may be used to locate the program 
  3848.  through the BROWSE button.  The filter must be an OS/2 executable program that 
  3849.  can be run from the commandline without starting a new session. 
  3850.  
  3851.  Output filter 
  3852.  
  3853.  This entry field is used to specify the name and path to the external file 
  3854.  filter used for writing a file.  This should be a fully qualified file path to 
  3855.  an executable program or executable script.  The filter path may be typed 
  3856.  directly or a standard file dialog box may be used to locate the program 
  3857.  through the BROWSE button.  The filter must be an OS/2 executable program that 
  3858.  can be run from the commandline without starting a new session. 
  3859.  
  3860.  Add 
  3861.  
  3862.  This button is only available when the extension specified does not exist in 
  3863.  the extension list.  When this button is pressed, the data in the fields is 
  3864.  updated in the program settings.  If the extension is already in use by the 
  3865.  mapping page, an error warning will be sounded.  Extensions in the mapping 
  3866.  page are mutually exclusive to the external file filter list. 
  3867.  
  3868.  Delete 
  3869.  
  3870.  This button is only available when the extension specified already exists in 
  3871.  the extension list for external filters. When this button is pressed, the data 
  3872.  associated with this extension is deleted from the program settings. 
  3873.  
  3874.  Change 
  3875.  
  3876.  This button is only available when the extension specified already exists in 
  3877.  the extension list for external filters. When this button is pressed, the data 
  3878.  associated with the extension is changed to the data in the entry fields. 
  3879.  
  3880.  
  3881. ΓòÉΓòÉΓòÉ 5.8. Startup Properties ΓòÉΓòÉΓòÉ
  3882.  
  3883. Show Footnote window 
  3884.  
  3885. PMsndX can display a window at the bottom of the main control panel with text 
  3886. indicating the action of each of the items under the mouse pointer.  When this 
  3887. box is set, the window is displayed. 
  3888.  
  3889. Note:  The effect of setting this item will not be seen until EdSndX is 
  3890.        restarted. 
  3891.  
  3892.  Save Window positions 
  3893.  
  3894.  During a session, the user can move any of the dialog boxes around on the 
  3895.  screen.  If the WINDOW POSITIONS box is checked, these window positions will 
  3896.  be saved when the program is terminated.  If this button is deselected before 
  3897.  the program is terminated, the next session will revert to the previous window 
  3898.  positions saved by the program.  By default, if no window position has been 
  3899.  saved for a particular window, the window will be opened in the lower left 
  3900.  corner of the desktop. 
  3901.  
  3902.  Save file Open paths 
  3903.  
  3904.  The cache of files that have been successfully opened may be saved between 
  3905.  sessions by selecting the Save file Open path checkbox.  If this button is 
  3906.  deselected before the program is terminated, the next session will revert to 
  3907.  the paths from the previous session. If no information is saved for the 
  3908.  program at any time, the current path will become the default path for open 
  3909.  operations. 
  3910.  
  3911.  Save file Save paths 
  3912.  
  3913.  The cache of files that have been successfully saved may be saved between 
  3914.  sessions by selecting the Save file Save path checkbox.  If this button is 
  3915.  deselected before the program is terminated, the next session will revert to 
  3916.  the path from the previous session. If no information has not been saved 
  3917.  between sessions, the current path will become the default path for save 
  3918.  operations. 
  3919.  
  3920.  Auto dismiss OPEN dialog 
  3921.  
  3922.  By default, whenever a file is successfully loaded, the OPEN dialog box is 
  3923.  removed from the desktop.  The OPEN dialog box can be set to remain on the 
  3924.  desktop even after a file has been successfully opened by deselecting this 
  3925.  checkbox. 
  3926.  
  3927.  Note:  Prior to version 2.16, this control was on the OPEN dialog itself.
  3928.  
  3929.  Auto dismiss SAVE dialog 
  3930.  
  3931.  By default, whenever a file is successfully saved, the SAVE dialog box is 
  3932.  removed from the desktop.  The SAVE dialog box can be set to remain on the 
  3933.  desktop even after a file has been successfully saved by deselecting this 
  3934.  checkbox. 
  3935.  
  3936.  Note:  Prior to version 2.16, this control was on the SAVE dialog itself.
  3937.  
  3938.  
  3939. ΓòÉΓòÉΓòÉ 5.9. PlSndX Specific Properties ΓòÉΓòÉΓòÉ
  3940.  
  3941. The information for this page applies only to PlSndX but can be set from any 
  3942. PMsndX application. 
  3943.  
  3944. Automatic rate adjust 
  3945.  
  3946. When this feature is enabled, PlSndX will automatically adjust the rate of the 
  3947. sample to the nearest multiple of 11025 Hz.  This feature is provided so that 
  3948. samples which have odd rates can still be played. 
  3949.  
  3950. Note:  Rate adjustment is only necessary when the sampling rate of the loaded 
  3951.        sample is not a multiple of 11025 Hz.  When rate adjustment is necessary 
  3952.        and this feature is enabled, the play button will display "Adj Rate" 
  3953.        while the rate effect is being applied. 
  3954.  
  3955.  Play on command line load 
  3956.  
  3957.  When the Play on command line load box is selected, a sample will be played 
  3958.  when specified on the command line.  The AUDIO dialog is opened after the file 
  3959.  has been loaded to allow for user control.  This feature can be used in 
  3960.  conjunction with the Exit after commandline play to allow a sample to be 
  3961.  played from the command line such that control is returned to the calling 
  3962.  program after playback has completed. 
  3963.  
  3964.  If this parameter is not specified, the sample will still be loaded from the 
  3965.  command line; however, it will not be played until the play button is pressed. 
  3966.  
  3967.  Exit after command line play 
  3968.  
  3969.  The Exit after command line play option provides the ability for PlSndX to 
  3970.  exit after playing the sample when the file is loaded from the command line. 
  3971.  This is primarily intended to provide a means to play any of the supported 
  3972.  formats from the command line. 
  3973.  
  3974.  Free memory after loading 
  3975.  
  3976.  When this feature is enabled, the original generic format sample data is 
  3977.  automatically deleted after the sample has been converted to the proper 
  3978.  buffers for the MMPM/2 audio system. This has the advantage that the overall 
  3979.  memory requirements for a particular sample to play is reduced; however, it 
  3980.  has the negative effect that the sample cannot be saved after the playback is 
  3981.  completed.  This option has been provided for the case where the operator has 
  3982.  no intention of saving the file when it has been loaded from the command line. 
  3983.  
  3984.  Enable Quick queueing 
  3985.  
  3986.  PlSndX has the ability to double buffer sound samples so that they can be 
  3987.  played back in quick succession.  This feature is only enabled when the Free 
  3988.  memory after loading is checked.  This form of operation is disabled by 
  3989.  default because it defeats the advantage of the Free memory after loading when 
  3990.  it creates the file buffer.  The operation is very simple.  Since the main 
  3991.  buffer is freed after the MMPM/2 buffers are filled, it is available to load 
  3992.  the next sample.  When this feature is enabled, the buffer is automatically 
  3993.  loaded while the playback of the current file continues.  As soon as the 
  3994.  current file completes, the new buffer is passed to MMPM/2 and the cycle 
  3995.  repeats till there are no more files in the queue.  The files may be queued in 
  3996.  any of the methods for loading a file such as selecting multiple files from 
  3997.  the OPEN dialog, selecting a file in the OPEN dialog while playback is 
  3998.  ongoing, or by utilizing the piping feature of the command line playback. 
  3999.  
  4000.  
  4001. ΓòÉΓòÉΓòÉ 5.10. EdSndX Specific Properties ΓòÉΓòÉΓòÉ
  4002.  
  4003. Enable UNDO 
  4004.  
  4005. When a sample file is changed through the editor, a tools or a new file is 
  4006. loaded, the sample is buffered so that the operation can be undone.  To access 
  4007. the UNDO feature, selecting the UNDO button on the Edit dialog.  The UNDO 
  4008. feature is only available when PMsndX is registered. 
  4009.  
  4010. Note:  By default the UNDO feature is not enabled to conserve memory.
  4011.  
  4012.  Use Displayed Channel 
  4013.  
  4014.  Some of the tools of the toolbox can operate on a selected channel or all 
  4015.  channels of a sample.  These tools provide a checkbox within the tool dialog 
  4016.  to select the mode of operation and the default mode can be set through this 
  4017.  property. 
  4018.  
  4019.  Use Selected Range 
  4020.  
  4021.  Some of the tools of the toolbox can operate on a selected range or on the 
  4022.  entire sample.  These tools provide a checkbox within the tool dialog to 
  4023.  select the mode of operation and the default mode can be set through this 
  4024.  property. 
  4025.  
  4026.  Fast Full display 
  4027.  
  4028.  This option selects the type of routine used to display the data in the full 
  4029.  display window.  When this box is selected, faster routines are used at the 
  4030.  expense of more memory resources. Clearing this box reverts to the older 
  4031.  routines which display the data much slower.  This control is independent of 
  4032.  Fast Channel display in order to allow flexibility in the choice of 
  4033.  performance over memory resources.  This option can also be selected from the 
  4034.  editor option menu item Fast Full display 
  4035.  
  4036.  Since the full display is used to display the status of the MMPM play 
  4037.  position, it is frequently redrawn as audio playback proceeds. As a result, 
  4038.  the full display benefits most from the faster routines. A reasonable 
  4039.  compromise between resources and speed is to set the full display in  the 
  4040.  faster mode and the channel displays in the slower mode. 
  4041.  
  4042.  Fast Channel display 
  4043.  
  4044.  This option selects the type of routine used to display the data in the 
  4045.  channel display windows.  When this box is selected, faster routines are used 
  4046.  at the expense of memory resources. Clearing this box reverts to the older 
  4047.  routines which display the data much slower.  The channel displays are only 
  4048.  redrawn when the data is changed, the data is scrolled, or a different channel 
  4049.  is displayed. As a result, since the display is changed less frequently, it 
  4050.  benefits less from the faster routines.  This option can also be selected from 
  4051.  the editor option menu item Fast Channel display 
  4052.  
  4053.  
  4054. ΓòÉΓòÉΓòÉ 5.11. EdSndX Editor Specific Properties ΓòÉΓòÉΓòÉ
  4055.  
  4056.  The settings on this page are identical to those found in the menus of the 
  4057. editor and are provided here to maintain a consistent place for controlling all 
  4058. settings. 
  4059.  
  4060. Info 
  4061.  
  4062. This setting is used to control the display of the information section of the 
  4063. editor window.  This setting is the same as the Display Info in the editor 
  4064. menu. 
  4065.  
  4066. All Channels 
  4067.  
  4068. This property is used to control the display of the channels in the editor 
  4069. window.  This setting is the same as the All Channels in the editor menu. 
  4070.  
  4071. Delay AUDIO Loading 
  4072.  
  4073. This property is used to control the loading of the audio buffers within the 
  4074. editor.  This setting is the same as the Delay AUDIO Loading in the editor 
  4075. menu. 
  4076.  
  4077. Setup AUDIO at Play 
  4078.  
  4079. This setting is used to control the loading of the audio buffers when the play 
  4080. button is pressed in the editor window.  This setting is the same as the Load 
  4081. AUDIO at playback in the editor menu. 
  4082.  
  4083. Auto Repeat 
  4084.  
  4085. This property allows the user to control the repeat feature of the audio 
  4086. portion of the editor window.  This setting is the same as the Auto repeat in 
  4087. the editor menu. 
  4088.  
  4089. Format MM:SS.hhhh 
  4090.  
  4091. This property is used to control the display of the index for sample 
  4092. positioning in the editor.  This setting is the same as the Format in the 
  4093. editor menu. 
  4094.  
  4095. Play mode Range 
  4096.  
  4097. This property is used to select the method for playback.  This setting is the 
  4098. same as the Play mode in the editor menu. 
  4099.  
  4100.  
  4101. ΓòÉΓòÉΓòÉ 6. Technical Issues ΓòÉΓòÉΓòÉ
  4102.  
  4103. Memory Usage: I have worked with means for storing and converting from one 
  4104. format to another efficiently.  Initially I tried to store things in a data 
  4105. structure which was a union of all of the types of data that are used by the 
  4106. computers.  However, converting from one format to another was difficult and 
  4107. each effect had to be able to understand the initial and final format.  This 
  4108. became a headache considering that there can be either signed or unsigned 
  4109. samples of sizes byte or word.  As new effects were added, it became 
  4110. unmanageable.  At a sacrifice to memory efficiency, I have changed it to store 
  4111. all data as a signed SHORT (2 byte) sample.  The effects then operate 
  4112. generically on the samples and the only time that the type of data is important 
  4113. is when reading or writing the samples.  The savings in complexity justified 
  4114. the memory requirements.  As a result, if a sample is 1k of bytes (.wav 
  4115. format), then in memory it will take up 2k.  Currently the program will only 
  4116. read and write 8 and 16 bit samples. Since I don't know of any sound cards that 
  4117. can sample at greater bit sizes, this is the limit.  In the future, this 
  4118. approach to memory usage can be easily extended to 32 bits without rewriting 
  4119. every part of the program.  In fact, to change the storage sizes, two 
  4120. definitions have to be changed and then the proper input/output routines 
  4121. written.  Simple? I think so. 
  4122.  
  4123. Significant Changes in version 2.00: 
  4124.  
  4125. Version 2.0 of PMsndX represents a significant change in the form and function 
  4126. of the program.  All of the changes have been incorporated into the REXX 
  4127. processing and in some cases, the results of the REXX operations may have 
  4128. changed such that previously correct REXX scripts no longer work. This section 
  4129. identifies the changes that are significantly different in the REXX scripts. 
  4130.  
  4131. COMMANDS and FUNCTIONS:  All portions of the rexx scripts have been converted 
  4132. to functions.  This eliminates a lot of confusion that was created in the 
  4133. previous version. 
  4134.  
  4135. FILE:  The FILE function has been changed to facilitate the multiple document 
  4136. interface.  As a result, the FILE function no longer returns the full path; 
  4137. rather, it returns a handle that is used to reference the file.  All functions 
  4138. have been changed to expect and require the handle. 
  4139.  
  4140.  
  4141. ΓòÉΓòÉΓòÉ 6.1. Additional known faults ΓòÉΓòÉΓòÉ
  4142.  
  4143. There is a known problem with PMsndX and version 3.0 of MMPM/2 which affects 
  4144. the performance of the Audio playback. When running PMsndX under Warp, anything 
  4145. which interrupts the playback of a sample (such as a system sound) will cause 
  4146. PMsndX to hang the next time playback is requested. I have tried to correct 
  4147. this but have found no solution at this time.  For this reason, I have provided 
  4148. the option to have PMsndX open the Audio device without sharing it (the 
  4149. default). This problem does not appear to affect PMsndX on previous versions of 
  4150. OS/2 (i.e. 2.0, 2.1 and 2.11). 
  4151.  
  4152. From an OS/2 window run the command SYSLEVEL.  If you receive the following 
  4153. output, then your system will probably exhibit the problem. 
  4154.  
  4155.       E:\MMOS2\INSTALL\SYSLEVEL.MPM 
  4156.                    IBM Multimedia Presentation Manager/2 
  4157.       Version 3.00   Component ID 562137400 
  4158.       Type W 
  4159.       Current CSD level: XR03000 
  4160.       Prior  CSD level: XR03000 
  4161.  
  4162.  To test to see if your system will encounter this problem, open a sample file 
  4163.  and select the AUDIO button on the main control panel. Start playback by 
  4164.  pressing the PLAY button and then pressing the PAUSE button.  Press the PAUSE 
  4165.  button again to resume playback. If the PLAY button stops moving after the 
  4166.  sample has finished playing, PMsndX will not lock up on your system.  You 
  4167.  should set PMsndX to share the audio device by going to the startup properties 
  4168.  page (from the main control panel system menu). If the playback button does 
  4169.  not stop moving after the sample has finished, then you should avoid using the 
  4170.  PAUSE button and leave PMsndX set so that it does not share the AUDIO device. 
  4171.  
  4172.  I apologize for this problem, and a new revision of MMPM/2 will correct this 
  4173.  in the future. 
  4174.  
  4175.  Minor limitations: 
  4176.  
  4177.    1. When recording a sample, the CD input cannot be used at this time. 
  4178.    2. There is no way to edit multiple sounds at the same time. 
  4179.  
  4180.  
  4181. ΓòÉΓòÉΓòÉ 7. Registration ΓòÉΓòÉΓòÉ
  4182.  
  4183. Registrations are available by contacting the Author. Paid registrations do not 
  4184. expire.  The expiration feature is provided to allow trial periods for 
  4185. businesses and packages which intend to distribute PMsndX at a cost to the 
  4186. user. 
  4187.  
  4188. Licensing and registration fees apply to the user interface and style of the 
  4189. program but do not apply to the algorithms used to create the effects.  These 
  4190. algorithms are public domain and may be copied and distributed freely. 
  4191.  
  4192. I have put a lot of effort into making this program robust and very pleasing. 
  4193. It has taken me more than a year and a half and 46,000 lines of code to get 
  4194. this program to where it is now, and I would hope that if you like the program 
  4195. and use it, you will appreciate it enough to send me a little cash to help fund 
  4196. future work.  I don't expect much. 
  4197.  
  4198. Asking for money is a sticky thing.  The big problem is to give people a 
  4199. program so that they can play with it to see what it can do and yet hold back 
  4200. enough to get people to want to register the program.  I put a lot of thought 
  4201. into this and have considered the many ways that authors achieve their goals. 
  4202. My solution was to disable the ability to read or write any formats other than 
  4203. the PC (.WAV) and Sun (.AU) types, disable the UNDO capability, and limit the 
  4204. editing capability. 
  4205.  
  4206.  
  4207. ΓòÉΓòÉΓòÉ 8. Shareware ΓòÉΓòÉΓòÉ
  4208.  
  4209. I have three options which I can offer which seem to follow with common 
  4210. SHAREWARE practice.  A registration form is provided in the file ORDER.TXT and 
  4211. the following are the options for registration. 
  4212.  
  4213. 1.  $10.00 will get you a password that will enable all of the functions of the 
  4214. current version. 
  4215.  
  4216. 2.  $20.00 will get you a password that will enable all of the functions for 
  4217. all versions up to the next major release.  If you chose to register using 
  4218. option 2 first and then want to upgrade, I will give you a $5 credit and you 
  4219. can get option 2 for $15.00. 
  4220.  
  4221. 3.  $40.00 will get you a password that will enable all of the functions for 
  4222. all future versions.  If you have chosen to register using option 2 first, I 
  4223. will give you a $10 credit and you can get the lifetime registration for 
  4224. $30.00.  If you have registered with option 1 first, then I will give you $5 
  4225. credit and you can get the lifetime registration for $35.00. 
  4226.  
  4227. Note:  Please note.  These prices cover just the registration.  Shipping 
  4228.        charges for the disks through the Postal service are extra.  If you 
  4229.        order the program through the mail, add $5.00 to cover the media and 
  4230.        shipping costs.  If you are an individual and do not have access to the 
  4231.        internet, I can send you a disk and registration for the fee of $5.00 to 
  4232.        cover the media and shipping costs.  Also, I also retain the right to 
  4233.        deny registrations at any time.  I will typically deny registration to 
  4234.        anyone who has an address that implies that it will be used in a 
  4235.        corporate or government environment. 
  4236.  
  4237.  Now, what do you get when you register.  Well, you obviously get a password 
  4238.  that will enable all functions of the program.  The functions that are 
  4239.  disabled when the CRIPPLEWARE option is selected for unregistered users are: 
  4240.  
  4241.  Formats   Only .WAV and .AU (U-Law) formats can be loaded and saved 
  4242.  External Filters External file filters cannot be used 
  4243.  Editor    The Cut and Paste operations of the editor only work for the full 
  4244.            sample (i.e. will not work for ranges) 
  4245.  Undo      The UNDO function is disabled 
  4246.  REXX      The REXX functionality is disabled 
  4247.  
  4248.  In addition to that, I can provide limited technical support for paying users 
  4249.  through regular phone service, email, or the US Postal service.  A number of 
  4250.  people have contacted me to ask for special programs (e.g. programs that will 
  4251.  just play any format without the overhead of the editor or a program that will 
  4252.  just convert between formats).  These will be fairly easy to create using the 
  4253.  existing objects of PMsndX.  If you are registered for PMsndX, these programs 
  4254.  will automatically recognize the registration and work on your system. 
  4255.  
  4256.  If and when you register, you will receive a password through whatever means 
  4257.  that you prefer.  If you choose the postal service, you will receive it via 
  4258.  disk along with the latest copy of the program (remember to include an 
  4259.  additional $5.00 to cover the shipping and media).  If you choose to receive 
  4260.  your registration through email, you will receive an email message that can be 
  4261.  imported using the FILE button of the registration dialog.  Registrations will 
  4262.  be sent after your form of payment has cleared. 
  4263.  
  4264.  Since PMsndX is provided as SHAREWARE, there is no provision for refunds.  In 
  4265.  the event that you are dissatisfied with the operation of PMsndX due to an 
  4266.  error in loading or saving a format, contact me and I will fix the program if 
  4267.  you can provide me with a copy of the file that is causing the problem or 
  4268.  enough detail that I can recreate the problem. 
  4269.  
  4270.  Send registrations to: 
  4271.  
  4272.       Scott Hiles 
  4273.       P.O. Box 5272 
  4274.       Herndon, VA 22070 
  4275.  
  4276.  WiSHware is a sole Proprietorship and can be reached through the phone at 
  4277.  (540) 663-0815.  This is the author's home phone and should not be called 
  4278.  unless the author cannot be contacted through any other means. 
  4279.  
  4280.  PMsndX is a form of SHAREWARE and as such requires a registration for all of 
  4281.  the functions of the program to be used.  What makes PMsndX different from 
  4282.  other shareware programs?  Well, simply put, any individual who contacts the 
  4283.  author and sends a completed ORDER.TXT file will receive a free registration. 
  4284.  You can email the completed ORDER.TXT file (after all, you don't need to send 
  4285.  it through US Mail if it is free and you are not sending a check) to me at 
  4286.  wishware@cais.com.  The only time that a registration must be paid for is when 
  4287.  it is used for business purposes in which an individual, company, or 
  4288.  government agency uses PMsndX in the office environment or makes a profit from 
  4289.  the use of PMsndX.  If you make a profit, then I want to make a profit.  This 
  4290.  is not to say that I will not accept donations for my efforts; rather, they 
  4291.  are not required for individuals.  This is the reason that the program still 
  4292.  requires a password and is also the reason that the user must contact the 
  4293.  author to get a registration.  It lets me keep track of who is using it, how 
  4294.  popular it is, and how far the distribution has gotten.  Now, why is this 
  4295.  tidbit hidden in the help file and not in plain sight?  It is the reward that 
  4296.  you get for reading the help file. 
  4297.  
  4298.  
  4299. ΓòÉΓòÉΓòÉ 9. Entering Registration Info ΓòÉΓòÉΓòÉ
  4300.  
  4301. Once you receive your registration you have a couple of options for entering it 
  4302. into the program.  First, pull up either the Welcome or About dialog box from 
  4303. the system menu of PMsndX.  Press the REGISTER button to bring up the 
  4304. registration dialog box. 
  4305.  
  4306. You may enter the data directly into the entry fields or you may have the 
  4307. program scan a data file for your registration information. When entering data, 
  4308. enter it exactly as it is shown in the file or text for your registration.  The 
  4309. Name field must not have any additional spaces and it must be entered in exact 
  4310. case. The password is 16 characters long and will never contain any space 
  4311. characters.  It is case sensitive so be careful to get the case right. 
  4312. Passwords never contain the upper case letter O or the upper case letter I to 
  4313. avoid confusion with similar looking numbers. 
  4314.  
  4315. When PMsndX scans a file for the password information, it looks for the 
  4316. following keys: 
  4317.  
  4318.       PMsndX Name: 
  4319.       Through version: 
  4320.       Expiration date: 
  4321.       PMsndX Password: 
  4322.  
  4323.  These lines can be anywhere in a file so there is no need to remove a mail 
  4324.  header or extra information.  PMsndX will search the file for the specific 
  4325.  text that it is looking for and extract it. 
  4326.  
  4327.  The registration information is stored in the file called os2.ini.  This 
  4328.  allows a copy of PMsndX to be run from a network and each machine can have 
  4329.  it's own registration. This also allows the pmsndx.ini file to be copied form 
  4330.  one machine to another without violating the licensing agreement.  Five items 
  4331.  are stored in the os2.ini and total about 100 bytes.  Any .ini editor can be 
  4332.  used to remove this information if the user wishes to delete PMsndX from the 
  4333.  system. 
  4334.  
  4335.  Note:  The information in the os2.ini file is only written when the program is 
  4336.         registered.  This avoids adding stuff to the os2.ini file unless the 
  4337.         user has chosen that the program is worth keeping. 
  4338.  
  4339.  
  4340. ΓòÉΓòÉΓòÉ 10. Tradeoffs ΓòÉΓòÉΓòÉ
  4341.  
  4342. When PMsndX is operating on a sample for the clipboard, AUDIO, or the tools, it 
  4343. stores the entire sample in memory.  This has the advantage that the program 
  4344. can double buffer the sample for faster operation; but, it has the disadvantage 
  4345. that it can take up a tremendous amount of memory to hold large samples. 
  4346. PMsndX provides the user with a simple interface at the expense of resources on 
  4347. the host computer. 
  4348.  
  4349.  
  4350. ΓòÉΓòÉΓòÉ 11. Copyright ΓòÉΓòÉΓòÉ
  4351.  
  4352. The author makes NO WARRANTY or representation, either expressed or implied, 
  4353. with respect to PMsndX, its quality, accuracy, merchantability, or fitness for 
  4354. a particular purpose.  This software is provided "AS IS" and you, its user, 
  4355. assume the entire risk as to its quality and accuracy. 
  4356.  
  4357. This software is copyright (C) 1994, William S. Hiles.  All rights Reserved 
  4358. except as specified below. 
  4359.  
  4360. Permission is hereby granted to use, copy, and distribute this software (or 
  4361. portions thereof) for any purpose, without fee, subject to these conditions: 
  4362.  
  4363. (1) The eight files, edsndx.exe, plsndx.exe, pmsndx.hlp, readme.txt, 
  4364. history.txt, license.txt, order.txt and file_id.diz must always be included 
  4365. during distribution. Any alterations to the files must be clearly documented. 
  4366. No changes may be made to the About screen or any of the copyright information. 
  4367.  
  4368. (2) Permission for use of this software is granted only if the user accepts 
  4369. full responsibility for any undesirable consequences.  The author accepts NO 
  4370. LIABILITY for damages of any kind. 
  4371.  
  4372. (3) Permission is not granted for the use of the author's name or company name 
  4373. in advertising or publicity relating to this software or products derived from 
  4374. it. 
  4375.  
  4376. (4) Users are granted permission to collect fees for the distribution of 
  4377. PMsndX, (such as BBS's that have a membership fee or a downloading charge, or 
  4378. FTP sites that sell CDROM versions of their archives) but users are 
  4379. specifically prohibited from selling PMsndX as a product or bundling PMsndX 
  4380. with other products that are then sold. 
  4381.  
  4382. (5) Unless otherwise negotiated in writing with the Author, registration 
  4383. passwords for PMsndX may not be distributed in part or in whole.  Registrations 
  4384. are provided to individuals (or for site licensing as negotiated at time of 
  4385. registration) and may not be distributed or transferred. 
  4386.  
  4387.  
  4388. ΓòÉΓòÉΓòÉ 12. Installation ΓòÉΓòÉΓòÉ
  4389.  
  4390. The PMsndX family of programs are installed using a convenient tool which not 
  4391. only copies the necessary programs to your system, but also registers the new 
  4392. programs on the WPS and modifies your CONFIG.SYS.  This tool can be found in 
  4393. the PMsndX distribution and is named INSTALL.EXE. 
  4394.  
  4395. The following steps are performed by the installation tool but can be performed 
  4396. manually. 
  4397.  
  4398.    1. Install the help file 
  4399.         a. Copy the file PMSNDX.HLP to your system 
  4400.         b. Add the destination directory to your HELP environment variable in 
  4401.            the CONFIG.SYS file 
  4402.    2. Install the sound player 
  4403.         a. Copy the file PLSNDX.EXE to your system 
  4404.         b. Add the destination directory to your PATH environment variable in 
  4405.            the CONFIG.SYS file 
  4406.         c. Create a program object on the WPS desktop 
  4407.              1. Set the executable "Path and file name:" to the directory which 
  4408.                 PLSNDX.EXE was copied to 
  4409.              2. Add *.WAV, *.AU, *.AIF, *.HCM, *.UB, *.SB, *.UW, *.SW, *.UL, 
  4410.                 *.SF, *.VOC, *.SMP, and *.IFF to the "Association:" list 
  4411.              3. Set the "Title:" to EdSndX 
  4412.    3. Install the sound editor 
  4413.         a. Copy the file EDSNDX.EXE to your system 
  4414.         b. Add the destination directory to your PATH environment variable in 
  4415.            the CONFIG.SYS file 
  4416.         c. Create a program object on the WPS desktop 
  4417.              1. Set the executable "Path and file name:" to the directory which 
  4418.                 EDSNDX.EXE was copied to 
  4419.              2. Add *.WAV, *.AU, *.AIF, *.HCM, *.UB, *.SB, *.UW, *.SW, *.UL, 
  4420.                 *.SF, *.VOC, *.SMP, and *.IFF to the "Association:" list 
  4421.              3. Set the "Title:" to EdSndX 
  4422.    4. Make a backup copy of the CONFIG.SYS before editing 
  4423.   The installation tool provides complete control over the actions that it 
  4424.  performs.  The defaults are as follows: 
  4425.  
  4426.    1. Install PlSndX in \os2\apps 
  4427.    2. Install EdSndX in \os2\apps 
  4428.    3. Install the HELP in \os2\help 
  4429.    4. Edit the config.sys if necessary 
  4430.    5. Create WPS objects for both PlSndX and EdSndX 
  4431.   The default for the destination of the EXECUTABLES is \os2\apps on the boot 
  4432.  drive. When the checkboxes for either PlSndX.EXE or EdSndX.EXE are selected, 
  4433.  the destination directory for the binaries will be enabled.  Deselecting both 
  4434.  of these checkboxes disables the destination directory list box. 
  4435.  
  4436.  When the destination directory list box is enabled, it provides a pulldown 
  4437.  list containing the directories listed in the current PATH environment 
  4438.  variable.  The list is displayed by selecting the icon on the right side of 
  4439.  the entry field.  The following figure illustrates the installation tool when 
  4440.  the EXE list is open. 
  4441.  
  4442.  The destination directory may also be edited directly by positioning the 
  4443.  cursor over the entry field and replacing the contents.  If the destination 
  4444.  directory is not currently in the PATH environment and the checkbox for "Edit 
  4445.  CONFIG.SYS" is checked, the location of the CONFIG.SYS file will be enabled. 
  4446.  The destination directory will be created if it doesn't exist when 
  4447.  installation starts. 
  4448.  
  4449.  Note:  The installation tool searches your CONFIG.SYS file for a line which 
  4450.         starts with "SET PATH=".  If you have edited this line such that the 
  4451.         PATH is either broken across multiple PATH statements, or the first 9 
  4452.         characters are not exactly "SET PATH=", do not let the installation 
  4453.         tool edit your CONFIG.SYS.  Case doesn't matter as "SET PATH=" is 
  4454.         equivalent to "set path=". 
  4455.  
  4456.   The default destination directory for the HELP files is \os2\help on the boot 
  4457.  drive. When the checkbox for Help is selected, the destination directory for 
  4458.  the help will be enabled.  Deselecting this checkbox disables the destination 
  4459.  directory for the Help file. 
  4460.  
  4461.  When the destination directory list box is enabled, it provides a pulldown 
  4462.  list containing the directories listed in the current HELP environment 
  4463.  variable.  The list is displayed by selecting the icon on the right side of 
  4464.  the entry field.  The following figure illustrates the installation tool when 
  4465.  the HELP list is open. 
  4466.  
  4467.  The destination directory may also be edited directly by positioning the 
  4468.  cursor over the entry field and replacing the contents.  If the destination 
  4469.  directory is not currently in the PATH environment and the checkbox for "Edit 
  4470.  CONFIG.SYS" is checked, the location of the CONFIG.SYS file will be enabled. 
  4471.  The destination directory will be created if it doesn't exist when 
  4472.  installation starts. 
  4473.  
  4474.  Note:  The installation tool searches your CONFIG.SYS file for a line which 
  4475.         starts with "SET HELP=".  If you have edited this line such that the 
  4476.         PATH is either broken across multiple PATH statements, or the first 9 
  4477.         characters are not exactly "SET HELP=", do not let the installation 
  4478.         tool edit your CONFIG.SYS.  Case doesn't matter as "SET HELP=" is 
  4479.         equivalent to "set help=". 
  4480.  
  4481.   By default the installation tool expects to find all of the files in the 
  4482.  directory where the installation tool was started.  If that is not the case, 
  4483.  the source of the files can be modified using the "From:" field.  This is a 
  4484.  simple entry field.  If a directory is selected which does not contain the 
  4485.  proper files, the installation will fail. 
  4486.  
  4487.  If the destination directory for either the executables or the help files are 
  4488.  not found in the PATH or HELP environment variables respectively, and the 
  4489.  checkbox for "Edit CONFIG.SYS" is set, the CONFIG.SYS entry field will be 
  4490.  enabled.  This allows you to specify a file which is different from the 
  4491.  default CONFIG.SYS which the system booted from. This is provides so that you 
  4492.  may edit a backup copy of the CONFIG.SYS file to verify that the program will 
  4493.  operate correctly. 
  4494.  
  4495.  Finally, the WPS objects are created automatically when the "Create WPS 
  4496.  Objects" checkbox is set.  This creates program icons on the desktop for both 
  4497.  EDSNDX.EXE and PLSNDX.EXE and sets the object properties properly. 
  4498.  
  4499.  To start the installation, press the INSTALL button.  The installation tool 
  4500.  will: 
  4501.  
  4502.    1. Create the HELP destination directory if the HELP checkbox is selected 
  4503.    2. Copy the HELP file to the specified destination directory 
  4504.    3. Create the EXECUTABLE destination directory if either PLSNDX.EXE or 
  4505.       EDSNDX.EXE are selected 
  4506.    4. Copy the selected EXECUTABLE files to the destination directory 
  4507.    5. Create WPS objects for each of the executables and set the association 
  4508.       properties if the "Create WPS Objects" checkbox is set 
  4509.    6. If the destination directory for the HELP or EXECUTABLES are not in the 
  4510.       current HELP and PATH environment, the CONFIG.SYS will be edited if "Edit 
  4511.       CONFIG.SYS" is selected 
  4512.  
  4513.  Note:  Whenever the CONFIG.SYS file is edited, the original is always renamed 
  4514.         to CONFIG.### (where ### is a three digit number) before editing is 
  4515.         started. In the event of failure of the program to edit the CONFIG.SYS 
  4516.         properly, the backup file can be used to recover the original 
  4517.         CONFIG.SYS. 
  4518.  
  4519.   If the installation is successful, the installation tool will exit after all 
  4520.  of the tasks are complete. 
  4521.  
  4522.  
  4523. ΓòÉΓòÉΓòÉ 13. Installation Editor ΓòÉΓòÉΓòÉ
  4524.  
  4525. When the CONFIG.SYS file is to be modified by the installation program, the 
  4526. lines to be modified are presented to the user for manual review. The original 
  4527. information is displayed along with the suggested modified information.  The 
  4528. user may edit the new information by placing the cursor at the appropriate 
  4529. position and modifying the text. 
  4530.  
  4531. If the new line is acceptable, press OK and the file will be edited. If the new 
  4532. line is not acceptable, press CANCEL and the file will not be changed. 
  4533.  
  4534.  
  4535. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4536.  
  4537. The following formats are supported by PMsndX. 
  4538.  
  4539.  APPLE (.aif)*  Apple 8/16 bit unsigned multi-channel samples 
  4540.  SUN (.au)      Sun/DEC/NeXT 8 or 16 bit single channel signed data samples or 
  4541.                 8 bit ULaw samples. 
  4542.  RIFF (.avi)*   OS/2 movie format (PMsndX extracts the Audio and discards the 
  4543.                 video information) 
  4544.  MAC (.hcm)*    Apple Macintosh 8 bit single channel samples 
  4545.  RAW (.ub)*     Raw 8 bit single channel unsigned samples without header 
  4546.                 information 
  4547.  RAW (.sb)*     Raw 8 bit single channel signed samples without header 
  4548.                 information 
  4549.  RAW (.uw)*     Raw 16 bit single channel unsigned samples without header 
  4550.                 information 
  4551.  RAW (.sw)*     Raw 16 bit single channel signed samples without header 
  4552.                 information 
  4553.  RAW (.ul)      Raw 16 bit U-Law single channel samples 
  4554.  IRACAM (.sf)*  Software produced 16 bit signed samples 
  4555.  PC (.voc)*     Creative Voice file format, 8 bit single channel unsigned 
  4556.                 samples 
  4557.  SAMP (.smp)*   Turtle beach samplevision files 
  4558.  PC (.wav)      Windows or OS/2 8 bit unsigned/16 bit signed multi-channel data 
  4559.                 samples 
  4560.  REXX (.cmd)*   REXX command script 
  4561.  *              Types identified by * are supported only when PMsndX is 
  4562.                 registered. 
  4563.  
  4564.  The .WAV format is actually defined as a RIFF file.  The header and data are 
  4565.  very robust and there are extensions for proprietary keywords and formats. 
  4566.  PMsndX only supports the standard PCM format and will not load proprietary 
  4567.  formats.  You will receive a STYLE error if it contains an unsupported format. 
  4568.  
  4569.  
  4570. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4571.  
  4572. The bits in a word are stored such that the leftmost bit is stored first in the 
  4573. first byte and the rightmost bit is stored last in the last byte.  If a word is 
  4574. composed of 16 bits, the word would be written to a file starting with bit 16 
  4575. and ending in bit 0. 
  4576.  
  4577. The number 0x1234 (0001 0010 0011 0100) is actually stored as 0001 0010 0011 
  4578. 0100. 
  4579.  
  4580.  
  4581. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4582.  
  4583. The bits in a word are stored such that the leftmost bit is stored first in the 
  4584. last byte and the rightmost bit is stored last in the first byte.  If a word is 
  4585. composed of 16 bits, the word would be written to a file starting with bit 7 
  4586. and ending in bit 8. 
  4587.  
  4588. The number 0x1234 (0001 0010 0011 0100) is actually stored as 0011 0100 0001 
  4589. 0010. 
  4590.  
  4591.  
  4592. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4593.  
  4594. There are four methods of transitioning channels in a sample. These methods are 
  4595. used in various tools to provide a smooth transition from one end of a range to 
  4596. another.  The four types of transitions are listed in the following text. 
  4597.  
  4598. The first method is linear.  In this case, the increase or decrease in the 
  4599. volume is constant over time.  This can be defined by the mathematical 
  4600. equation: 
  4601.  
  4602. volume(t) = volume(t) * t/interval 
  4603.  
  4604. A second method for adjusting the volume is to use a geometric expression so 
  4605. that the sample transitions slowly in the beginning of the range and then 
  4606. changes quickly toward the end of the range. To transition a sample out slowly 
  4607. over time a form of the function: 
  4608.  
  4609. volume(t) = volume(t) * (1 - (t/interval))┬ñ 
  4610.  
  4611. The third method is exactly the reverse of the slow transition in which the 
  4612. transition moves very quickly in the beginning of the range and then slowly 
  4613. reaches the end of the range. The equation for this is as follows: 
  4614.  
  4615. volume(t) = volume(t) * (t/interval)┬ñ 
  4616.  
  4617. Finally a fourth method is to have the samples make an immediate transition or 
  4618. a step.  In this case, the transition is made immediately at the beginning of 
  4619. the range. 
  4620.  
  4621.  
  4622. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4623.  
  4624. The RIFF format can be a complex format; however, the following simplified 
  4625. description is provided for anyone wanting to write an external filter to 
  4626. communicate with PMsndX. 
  4627.  
  4628. The Format 
  4629.  
  4630. The RIFF format is composed of recursive blocks.  Each block is identified by a 
  4631. string of 4 characters which creates a MARK, followed a SIZE field which is a 4 
  4632. byte integer which specifies the length of the block (not including the MARK 
  4633. and SIZE fields), followed by the actual data.  Blocks can be nested in the 
  4634. RIFF format.  Any block which is not recognized or supported can be ignored and 
  4635. skipped 
  4636.  
  4637. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4638. ΓöéMARK   ΓöéSIZE    ΓöéDescription                                       Γöé
  4639. Γöé       Γöé        Γöé                                                  Γöé
  4640. Γöé"RIFF" Γöéf len   ΓöéThis must be the first block in the file and      Γöé
  4641. Γöé       Γöé        Γöéidentifies the total length of the file.          Γöé
  4642. Γöé       Γöé        Γöé                                                  Γöé
  4643. Γöé"WAVE" ΓöéNone    ΓöéThis block identifies that the data in the file isΓöé
  4644. Γöé       Γöé        Γöéin WAVE format.                                   Γöé
  4645. Γöé       Γöé        Γöé                                                  Γöé
  4646. Γöé"LIST" Γöéb len   ΓöéThis marker identifies a block of ASCII           Γöé
  4647. Γöé       Γöé        Γöéinformation. Typically this is used to store a    Γöé
  4648. Γöé       Γöé        Γöéstring of data with the file.                     Γöé
  4649. Γöé       Γöé        Γöé                                                  Γöé
  4650. Γöé"fmt " Γöé        ΓöéThis marker identifies a block of data used to    Γöé
  4651. Γöé       Γöé        Γöéidentify the format of the data.  This is one of  Γöé
  4652. Γöé       Γöé        Γöéthe most important blocks because it identifies   Γöé
  4653. Γöé       Γöé        Γöéthe size of the data, the order of the bytes, and Γöé
  4654. Γöé       Γöé        Γöéother information necessary to interpret the data Γöé
  4655. Γöé       Γöé        Γöécorrectly.  All integers are written to the file  Γöé
  4656. Γöé       Γöé        Γöéin Intel Little Endian order.                     Γöé
  4657. Γöé       Γöé        Γöé                                                  Γöé
  4658. Γöé       Γöé16 bits ΓöéStyle of the data.  The only style of data        Γöé
  4659. Γöé       Γöé        Γöésupported by PMsndX is PCM_FORMAT or 0x01.  Other Γöé
  4660. Γöé       Γöé        Γöéstyles are defined by the RIFF format.            Γöé
  4661. Γöé       Γöé        Γöé                                                  Γöé
  4662. Γöé       Γöé16 bits ΓöéNumber of channels.  Up to 4 channels are         Γöé
  4663. Γöé       Γöé        Γöésupported by PMsndX.                              Γöé
  4664. Γöé       Γöé        Γöé                                                  Γöé
  4665. Γöé       Γöé32 bits ΓöéSampling RATE.                                    Γöé
  4666. Γöé       Γöé        Γöé                                                  Γöé
  4667. Γöé       Γöé32 bits ΓöéAverage Bits Per Second for playback.  PMsndX     Γöé
  4668. Γöé       Γöé        Γöéignores this information.                         Γöé
  4669. Γöé       Γöé        Γöé                                                  Γöé
  4670. Γöé       Γöé16 bits ΓöéPadding/Reserved                                  Γöé
  4671. Γöé       Γöé        Γöé                                                  Γöé
  4672. Γöé       Γöé16 bits ΓöéSize of each sample (8 bits or 16 bits).  8 bit   Γöé
  4673. Γöé       Γöé        Γöédata is stored as UNSIGNED data.  16 bit data is  Γöé
  4674. Γöé       Γöé        Γöéstored as SIGNED data.  This is very important andΓöé
  4675. Γöé       Γöé        Γöéwas the source of one of my bugs in version 1.X.  Γöé
  4676. Γöé       Γöé        Γöé                                                  Γöé
  4677. Γöé       ΓöéX bytes ΓöéPadding/Reserved.  This field is used to pad the  Γöé
  4678. Γöé       Γöé        Γöédata to a particular byte boundary.  To determine Γöé
  4679. Γöé       Γöé        Γöéthe length of this area subtract the 16 from the  Γöé
  4680. Γöé       Γöé        Γöésize of this block.                               Γöé
  4681. Γöé       Γöé        Γöé                                                  Γöé
  4682. Γöé"data" Γöéb len   ΓöéThe actual data is stored in this block in the    Γöé
  4683. Γöé       Γöé        Γöéformat identified by the "fmt " marker.  This     Γöé
  4684. Γöé       Γöé        Γöéspecifies the number of bytes in the file not the Γöé
  4685. Γöé       Γöé        Γöénumber of samples.                                Γöé
  4686. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4687.  
  4688. Limitations 
  4689.  
  4690. 1.  The data must appear in a single block.  Multiple blocks of data are not 
  4691. supported in the external file filter interface.  (multiple data blocks are 
  4692. supported in the normal .WAV reader 
  4693.  
  4694. 2.  Only the BLOCK MARKers listed in the previous table are supported.  All 
  4695. other blocks will be ignored without warnings. 
  4696.  
  4697. 3.  Only FORMAT_PCM data is allowed with a style of 0x01. 
  4698.  
  4699. 4.  If the data is 8 bits, it will be formatted as UNSIGNED. If the data is 16 
  4700. bits, it will be formatted as SIGNED. 
  4701.  
  4702. 5.  Data is expected to be in Little Endian format. 
  4703.  
  4704. An Example 
  4705.  
  4706. The following is a dump of a simple RIFF header in the sample file 
  4707. brettapp.wav: 
  4708.  
  4709. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4710. ΓöéAddressΓöéHex Dump                                        ΓöéASCII Dump       Γöé
  4711. Γöé       Γöé                                                Γöé                 Γöé
  4712. Γöé000000 Γöé52 49 46 46 62 16 01 00 57 41 56 45 66 6D 74 20 ΓöéRIFF....WAVEfmt  Γöé
  4713. Γöé       Γöé                                                Γöé                 Γöé
  4714. Γöé000010 Γöé10 00 00 00 01 00 01 00 11 2B 00 00 11 2B 00 00 Γöé................ Γöé
  4715. Γöé       Γöé                                                Γöé                 Γöé
  4716. Γöé000020 Γöé04 00 08 00 64 61 74 61 3E 16 01 00 7F 7F 80 7F Γöé....data........ Γöé
  4717. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4718.  
  4719. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4720. ΓöéRAW data  ΓöéASCII   ΓöéDescription                                       Γöé
  4721. Γöé          Γöé        Γöé                                                  Γöé
  4722. Γöé52494646  ΓöéRIFF....ΓöéThis is the first block and specifies that the    Γöé
  4723. Γöé62160100  Γöé        Γöéfile is 0x00011662 bytes long.                    Γöé
  4724. Γöé          Γöé        Γöé                                                  Γöé
  4725. Γöé57415645  ΓöéWAVE    ΓöéThis is the very next field which specifies that  Γöé
  4726. Γöé          Γöé        Γöéthis is the file is a WAVE file (as opposed to an Γöé
  4727. Γöé          Γöé        ΓöéAVI file).                                        Γöé
  4728. Γöé          Γöé        Γöé                                                  Γöé
  4729. Γöé666d7420  Γöéfmt ....ΓöéThis format block is 0x00000010 bytes long.  The  Γöé
  4730. Γöé10000000  Γöé        Γöéfollowing 16 (0x10) bits define the format.       Γöé
  4731. Γöé          Γöé        Γöé                                                  Γöé
  4732. Γöé0100      Γöé..      ΓöéStyle of the data (0x0001 = PCM_FORMAT).          Γöé
  4733. Γöé          Γöé        Γöé                                                  Γöé
  4734. Γöé0100      Γöé..      ΓöéChannels in the data (0x0001 = 1 channel).        Γöé
  4735. Γöé          Γöé        Γöé                                                  Γöé
  4736. Γöé112b0000  Γöé....    ΓöéSampling RATE (0x00002b11 = 11025 Hz).            Γöé
  4737. Γöé          Γöé        Γöé                                                  Γöé
  4738. Γöé112b0000  Γöé....    ΓöéAverage Bits per Second (0x00002b11 = 11025).     Γöé
  4739. Γöé          Γöé        Γöé                                                  Γöé
  4740. Γöé0400      Γöé..      ΓöéPadding/Reserved                                  Γöé
  4741. Γöé          Γöé        Γöé                                                  Γöé
  4742. Γöé0800      Γöé..      ΓöéSize of each sample (0x0008 = UNSIGNED 8 bit data)Γöé
  4743. Γöé          Γöé        Γöé                                                  Γöé
  4744. Γöé64617461  Γöédata....ΓöéThe data block is 0x0001163e (71230) bytes long.  Γöé
  4745. Γöé3e160100  Γöé        Γöé                                                  Γöé
  4746. Γöé          Γöé        Γöé                                                  Γöé
  4747. ΓöéXXXXXX... Γöé        ΓöéThe actual data.                                  Γöé
  4748. Γöé...XXXXXX Γöé        Γöé                                                  Γöé
  4749. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4750.  
  4751.  
  4752. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  4753.  
  4754. EdSndX has two sets of routines for displaying the graphical representation of 
  4755. sound samples.  This option has been provided to meet the needs of users who 
  4756. desire a faster display at the expense of larger memory requirements.  Changes 
  4757. to this setting only take effect the next time an edit window is created. 
  4758. Windows that are already opened will not be changed when this property is 
  4759. modified. 
  4760.  
  4761. When this checkbox is not selected, the slower routines are used.  These 
  4762. routines display the data by clearing the display, drawing the highlighted 
  4763. area, drawing each point to be displayed, and finally drawing the MMPM 
  4764. position. Obviously this method is slow but it consumes no additional memory as 
  4765. the data is drawn directly to the screen. 
  4766.  
  4767. When the faster routines are used, the data is predrawn into a bitmap in memory 
  4768. and DMA routines are used to place the image on the display.  The data is 
  4769. stored as a monochrome bitmap using huffman compression to minimize memory. 
  4770. Displaying the data is simply a matter of displaying the bitmap, drawing the 
  4771. selection box, and then drawing the line for the MMPM position.  The stored 
  4772. bitmaps are sized based on the size of the display window.  Changes to the 
  4773. data, changes to the display size, and changes in the Zoom cause the data to be 
  4774. deleted and recreated so that it only takes up the minimum required resources.